2010-12-17 2 views
1

Сценарий:Использование ANT/SVNANT удалить файлы из SVN рабочей копии, если они не существуют в другой папке

  • SVN Repo # 1 с кодом приложения базы
  • SVN Repo # 2 с ранее составленным вех

Мне нужен сценарий сборки ANT, который может сделать следующее:

  1. Экспорт базы кода из SVN репо # 1 (Сделано)
  2. Компиляции экспортированного кода базы (сделано)
  3. Отъезда базового кода из SVN репо # 2 (сделано)
  4. Сравнить скомпилированный/экспортируемый код базу из SVN репо # 1 в рабочей копию из SVN repo # 2 a. Если в SVN-репо # 1 добавлены какие-либо файлы, их необходимо добавить в рабочую копию b. Если какие-либо файлы были обновлены в репо # 1 SVN, они перезаписывают то, что находится в рабочей копии c. Если какие-либо файлы были удалены из SVN репо # 2, они должны быть удалены из рабочей копии
  5. Проверить в обновленном базе кода в SVN репо # 2

Шаг № 4, где я бегу в вопросы. Я считаю, что могу выполнить 4a и 4b, просто скопировав скомпилированную/экспортированную базу кода из репо # 1 SVN поверх рабочей копии, которая была извлечена из репо # 2 SVN. Я не уверен, как сделать разницу между двумя базами кода, чтобы определить, какие файлы нужно удалить из рабочей копии SVN repo # 2. Я знаю, что я могу использовать SVNANT delete для удаления файлов, но как мне создать набор файлов?

ответ

1

Я выполнял аналогичные задачи. В моем случае муравей код выглядит следующим образом:

... 
<svn.sync to="${svn_folder}" from="${deploy_directory_path}" /> 
... 
<svn svnkit="true" javahl="false"> 
    <add dir="${svn_folder}" force="true" recurse="true" /> 
    <!--add> 
     <svnFileSet dir="${svn_folder}"> 
      <svnUnversioned/> 
     </svnFileSet> 
    </add--> 
    <delete> 
     <svnFileSet dir="${svn_folder}"> 
      <svnMissing/> 
     </svnFileSet> 
    </delete> 
</svn> 
<svn verbose="true" username="${svn.username}" password="${svn.password}" svnkit="true"> 
    <commit dir="${svn_folder}" message="${version}"/> 
</svn> 

где

<macrodef name="svn.sync"> 
    <attribute name="to" /> 
    <attribute name="from" /> 
    <sequential> 
     <mkdir dir="@{to}" /> 
     <sync todir="@{to}" includeemptydirs="true"> 
      <fileset dir="@{from}" /> 
      <fileset dir="@{to}" defaultexcludes="no"> 
       <include name="**/.svn/**/*" /> 
       <include name="**/.svn/**/*.*" /> 
      </fileset> 
     </sync> 
    </sequential> 
</macrodef> 

 Смежные вопросы

  • Нет связанных вопросов^_^