2013-04-10 2 views
1

SharpSvn 라이브러리를 사용하고 있습니다. 로컬에있는 파일이 Subversion 서버에있는 파일과 같은지 확인하고 싶습니다. 아무도 내가 어떻게하는지 알아? 현재이 내가 할 노력하고있어이지만 경우에, 나는 로컬 파일 버전 제어 것을 질문에서 믿고있어svn의 파일이 로컬 파일과 동일한 지 확인하는 방법 C# (sharpsvn)

public bool IsDirectoryTheSame(string folderpath) 
    { 
     var IsSameDirectory = false; 
     var installfolderlocal = GetInstallationFolder(folderpath); 
     using (SvnClient svnClient = new SvnClient()) 
     { 
      SvnUriTarget target1 = 
       new SvnUriTarget(
        new Uri(string.Format("{0}{1}", svnclientpath, folderpath))); 
      SvnUriTarget target2 = 
       new SvnUriTarget(
        new Uri(installfolderlocal)); 

      using(var stream = new MemoryStream()) 
      { 
      IsSameDirectory = svnClient.Diff(target1,target2,stream); 
      } 
     } 
     return IsSameDirectory; 
    } 
+0

체크섬을 비교할 수 있습니다. – Botonomous

답변

1

을 "URL에서 저장소에 연결할 수 없습니다"말하고 GetInfo()를 사용하여 저장소에있는 파일의 최신 개정 번호를 가져 와서 로컬 파일의 최신 개정 번호와 비교할 수 있습니다.

Another suggestion은 GetUriFromWorkingCopy()를 사용합니다. 개인적으로 직접 테스트하지는 않았지만 한 번 시도해 볼 가치가 있습니다.

어쨌든 비싼 전화 일 수 있으므로 diffing을 최후의 수단으로 사용해야합니다. 그러나 파일이 버전 제어되지 않는 경우, 이는 유일한 기회 일 수 있습니다.

+0

파일이 변경되었는지 확인하기 위해 커밋하는 것은 실제로 유용한 해결책이 아닙니다. – metalhead

+0

네, 말씀 드린 것처럼 사용자가 변경 자체를 커밋하지 않기 때문에 응답의 절반을 제거했습니다. – watkinsmatthewp

+0

감사합니다. – Trustos

관련 문제