2008-10-01 1 views
30

VisualSVN 서버를 사용하여 SVN 저장소를 호스팅하고 있으며 일부 자동화 작업의 경우 http [s] 계층을 통해 특정 버전을 가져오고 싶습니다.VisualSVN 서버에서 http를 통해 특정 버전 가져 오기

HEAD 버전은 http [s] 요청을 통해 서버 (httpd?)에 간단하게 전송할 수 있습니다.하지만 리비전을 질의 문자열로 지정할 수있는 기능이 있습니까? 나는 그것을 찾을 수 없습니다 ...

특정 폴더에 많은 파일이 있기 때문에 제가 도와 드릴 수 없다면 체크 아웃을하고 싶지 않습니다, 그리고 나는 그들을 모두 원하지 않습니다. - 단지 한두 가지.

답변

83

결코 늦지 않는 것이 좋습니다. ? 매우, 매우 흥미로운 - https://entire/Path/To/Folder/file/?p=REV

는 P는 = 레브 개정 재미있는

+2

과 같은 경로에서 특정 버전을 어떻게 가져올 수 있습니까? VisualSVN 서버 웹 인터페이스에서 저에게 도움이되었습니다. . 감사! – dnewcome

+2

이것도 나를 위해 일했습니다. 감사. – ianstigator

+12

이 답변은 받아 들일만한 가치가 있습니다! – gregorej

4

Subversion은 내부적으로 해당 정보에 액세스하는 데 사용하는 Uris를 공개적으로 문서화하지 않습니다. (그리고 문서화 된 곳에서는 향후 버전에서 변경 될 수 있음이 명시되어 있습니다.)

웹에서이 정보에 액세스하려면 웹 뷰어 (예 : websvn, viewvc)를 사용할 수 있습니다.

자신의 프로그램에서 액세스하려면 SharpSvn과 같은 클라이언트 바인딩을 사용할 수도 있습니다.

using (SvnClient client = new SvnClient()) 
using (FileStream fs = File.Create("c:\\temp\\file.txt")) 
{ 
    // Perform svn cat http://svn.collab.net/svn/repos/trunk/COMMITTERS -r 23456 
    //     > file.txt 

    SvnCatArgs a = new SvnCatArgs(); 
    a.Revision = 23456; 
    client.Cat(new Uri("http://svn.collab.net/svn/repos/trunk/COMMITTERS"), a, fs); 
} 

[2008-12-31 업데이트 : 당신은 이전 버전을 검색에 사용할 수있는 공개 URL을 문서화 시작 서브 버전의 다음 몇 가지 버전 중 하나입니다.]

+0

을 지정합니다. 나는 그것에게 소용돌이를 줄 것이다. –

+0

더 최근의 Subversion 버전에는 이전 버전을 검색하기위한 공개 url 구문이 있습니다. @revision은? p = revision 및? r = rev를 사용하여 -r rev로 지정할 수 있습니다. (그리고이 값들은 물론 결합 될 수 있습니다) –

6

몰라 당신은 이미 답을 발견 한 경우 이 질문에 있지만, 아파치에 정기적으로 SVN 서버에 당신과 함께 특정 버전으로 얻을 수 있습니다 분명

http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext 
  • 호스트 & REVISION_NUMBER을
  • /path/to/file.ext 내가 그래서 귀하의 마일리지가 다를 수 있습니다 visualsvn 사용한 적이 REPO 루트

를 기준으로합니다.

+0

흥미 롭습니다; 내가 보자. –

+1

VisualSVN은 그 형식을 사용하지 않는다. 위의 @ chhenni의 답변을 참조하십시오. –

+0

이것은 내가 본 후에 있었던 것처럼 보입니다 - visualsvn과 같은 것없이이 작업을 수행하는 방법. '! svn/bc /'부분을 따를지는 잘 모르겠다. http : // svn.apache.org/repos/asf/httpd/site/trunk/content/index.mdtext' –

관련 문제