2010-12-17 3 views
1

시나리오 :사용 ANT/SVNANT는 SVN 작업 복사본에서 파일을 삭제하는

  • SVN 리포 이전에 컴파일 이정표와 응용 프로그램 코드 기반
  • SVN의 repo # 2 # 1 SVN의 환매 특약 # 1

    1. 수출 코드베이스 :

나는 다음을 수행 할 수있는 ANT 빌드 스크립트가 필요합니다

  • 이 (완료) 내 보낸 코드베이스
  • 체크 아웃에서 코드베이스를 컴파일 (완료) SVN의 repo # 2 (완료)
  • 는에서 작업 복사본에 SVN의 REPO # 1에서 컴파일/수출 코드베이스를 비교 SVN repo # 2 a. SVN repo # 1에 파일이 추가 된 경우 작업 사본 에 추가해야합니다. b. SVN repo # 1에서 파일이 업데이트 된 경우 작업 복사본에있는 파일을 덮어 씁니다. c. 모든 파일은 SVN의 REPO # 2에서 제거 된 경우, 그들은
  • 확인 SVN의 REPO 번호에 업데이트 된 코드 기반에서 작업 복사본에서 삭제해야 내가으로 실행하고 어디에 단계 # 4는 2
  • 문제. SVN repo # 2에서 체크 아웃 된 작업 카피를 통해 SVN repo # 1에서 컴파일 된/익스포트 된 코드 기반을 복사하여 4a 및 4b를 수행 할 수 있다고 생각합니다. 나는 어떻게 파일을 SVN repo # 2 작업 복사본에서 삭제해야할지 결정하기 위해 두 코드베이스 사이의 diff 작업을 수행하는 방법을 잘 모르겠다. 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> 
    
    관련 문제