2017-04-14 6 views
0

나는 한 브랜치에서 다른 브랜치로 사용자가 선택한 리비전 목록을 자동으로 병합하고 커밋하는 프로젝트를 가지고있다. 병합 충돌이 발생하면 프로세스가 중단되고 작업 복사본이 되돌려집니다. 그러나어떻게 SharpSVN을 사용하여 작업 복사본의 변경 사항을 재귀 적으로 되돌릴 수 있습니까?

, 내가 다시 시도하고 일반적으로 자연 그대로의 작업 복사본에 충돌을 일으키지 않을 개정을 선택로 이동, 나는 다음과 같은 오류 얻을 : 나는에 되돌리기를 할 경우에도

Merge failed: SharpSvn.SvnWorkingCopyException: Can't merge into conflicted node 'C:\SVN\MyProject\MyBranch\ProjectDirectory\SubDirectory\conflicted-file.cs'

을 작업 복사본을 사용하는 경우 svn:mergeinfo 속성 만 되돌릴 수 있지만 충돌하는 파일이나 그렇지 않은 파일은 되돌릴 수 있습니다 (이전 파일은 여전히 ​​존재 함). 재귀 적으로 복귀하지 않습니까? 그렇지 않으면 그렇게 할 수있는 옵션이 보이지 않습니다. 여기

는 지금까지 시도했습니다 내용은 다음과 같습니다

내가 얻기 위해해야 ​​할 일을, 전체 작업 디렉토리를 삭제하고 (매우 긴 시간이 걸립니다) 체크 아웃을하는
using (var client = new SvnClient()) 
{ 
    // [Authentication code goes here...] 
    var targetPath = [email protected]"{_svnLocalRoot}\{project}\{branch}\"; 

    // Clean Up 
    var cleanupArgs = new SvnCleanUpArgs() 
    { 
     BreakLocks = true, 
     ClearDavCache = true, 
     VacuumPristines = true, 
     FixTimestamps = true 
    }; 
    client.CleanUp(targetPath, cleanupArgs); 

    // Revert 
    var revertArgs = new SvnRevertArgs() 
    { 
     Depth = SvnDepth.Infinity, 
     ClearChangelists = true 
    }; 
    client.Revert(targetPath); 

    // Update 
    var updateArgs = new SvnUpdateArgs() 
    { 
     Depth = SvnDepth.Infinity 
    }; 
    client.Update(targetPath, updateArgs); 

    // [Merge and commit code goes here...] 
} 

짧은 충돌이없는 깨끗한 상태와 최신 코드로 작업 복사본을 만들 수 있습니까?

나는 현재 SharpSvn.1.9-x64 버전 1.9005.3940.224

답변

0

을 사용하고 그것은 오타로 간단했다.

client.Revert(targetPath); 

이 있었어야 :

client.Revert(targetPath, revertArgs);