SVN 저장소의 특정 경로 아래에있는 모든 텍스트 파일에서 문자열 토큰을보고있는 응용 프로그램을 작성하고이 토큰을 포함하는 모든 파일을 반환합니다. 이 응용 프로그램에 sharpsvn을 사용합니다. 나는 루트 SVN 저장소 경로 (및 해당 하위 폴더 물론) 아래에있는 모든 파일의 경로를 얻을 수있는 방법을 알고 있지만 체크 아웃 또는 내보내기 않고 SVN 저장소에서 직접 각 파일의 내용을 읽을 수있는 방법이 있는지 궁금해. 내 응용 프로그램이 실행되는 컴퓨터에? 리포지토리에서 직접 내용을 읽을 수있는 방법이 없다면 모든 파일에서 특정 토큰을 찾기 위해 파일을 부드럽게 내보내거나 체크 아웃 할 것을 어떻게 추천합니까? MemoryStream
에서SVN 저장소에서 직접 파일 내용 읽기
1
A
답변
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
또한 [이 비슷한 질문] (http://stackoverflow.com/q/44176/1698557)을 참조하십시오. 요컨대, 쉽게 해결할 수있는 문제는 아닙니다. –