2014-09-25 5 views
1

SVN 저장소의 특정 경로 아래에있는 모든 텍스트 파일에서 문자열 토큰을보고있는 응용 프로그램을 작성하고이 토큰을 포함하는 모든 파일을 반환합니다. 이 응용 프로그램에 sharpsvn을 사용합니다. 나는 루트 SVN 저장소 경로 (및 해당 하위 폴더 물론) 아래에있는 모든 파일의 경로를 얻을 수있는 방법을 알고 있지만 체크 아웃 또는 내보내기 않고 SVN 저장소에서 직접 각 파일의 내용을 읽을 수있는 방법이 있는지 궁금해. 내 응용 프로그램이 실행되는 컴퓨터에? 리포지토리에서 직접 내용을 읽을 수있는 방법이 없다면 모든 파일에서 특정 토큰을 찾기 위해 파일을 부드럽게 내보내거나 체크 아웃 할 것을 어떻게 추천합니까? MemoryStream에서SVN 저장소에서 직접 파일 내용 읽기

+0

또한 [이 비슷한 질문] (http://stackoverflow.com/q/44176/1698557)을 참조하십시오. 요컨대, 쉽게 해결할 수있는 문제는 아닙니다. –

답변

1

URL을 대상으로 사용 SvnClient.Write 및 문자열을 읽어 : 그것은 각 파일에 대한 서버에 새로운 연결을 엽니로이 정말 빠르지 않을 것이라는 점을

using (var stream = new MemoryStream()) 
using (SvnClient client = new SvnClient()) 
{ 
    string yourUrl = "http://svn.apache.org/repos/asf/subversion/trunk/CHANGES"; 
    if (client.Write(new SvnUriTarget(yourUrl), stream)) 
    { 
     // reset the position to read from the beginning 
     stream.Position = 0; 
     using (var reader = new StreamReader(stream)) 
     { 
      string contents = reader.ReadToEnd(); 

      // find your token 
     } 
    } 
} 

참고.

+0

이것을 확인하는 것은 여전히 ​​작동하지만,이 작업을하기 위해서는'stream.Position = 0; '이 중요하다는 점에 유의하십시오. 그렇지 않으면 빈 문자열을 반환합니다. – oscilatingcretin