VisualSVN 서버를 사용하여 HTTP를 통해 구체적인 개정을 얻습니다
-
03-07-2019 - |
문제
VisualSVN 서버를 사용하여 SVN Repo를 호스팅하고 일부 자동화 작업의 경우 HTTP [S] 레이어를 통해 특정 버전을 얻을 수 있습니다.
서버 (HTTPD?)에 대한 HTTP 요청을 통해 단순히 헤드 버전을 얻을 수 있지만, 수정을 쿼리 스트링으로 지정할 수있는 능력이 있습니까? 나는 그것을 찾을 수없는 것 같다 ...
특정 폴더에 많은 파일이 있으므로 도와 줄 수 없다면 결제를하고 싶지 않으며 모두 하나 또는 두 개만 원하지 않습니다.
해결책
안하는 것보다 늦게하는 것이 낫다;https : // 전체/path/to/folder/file/? p = rev
? p = Rev 개정을 지정합니다
다른 팁
Dunno이 질문에 대한 답변을 이미 찾았지만 Apache의 일반 SVN 서버에서는 다음과 같은 특정 개정판을받을 수 있습니다.
http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
- 호스트 및 개정 _number는 분명합니다
- /path/to/file.ext는 Repo Root와 관련이 있습니다
나는 당신의 마일리지가 다를 수 있도록 VisualSVN을 사용한 적이 없습니다.
전복은 내부적으로 해당 정보에 액세스하기 위해 사용하는 URI를 공개적으로 문서화하지 않습니다. (그리고 문서화 된 경우, 이것은 향후 버전에서 변경 될 수 있다고 명시 적으로 언급되어 있습니다)
웹 에서이 정보에 액세스하려면 웹 뷰어를 사용할 수 있습니다 (예 : 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 : 다음 몇 가지 버전의 Subversion 중 하나는 이전 버전을 검색하는 데 사용할 수있는 공개 URL을 문서화하기 시작합니다.
그만큼 VisualSVN 웹 인터페이스의 도움말 페이지 다음 중 하나와 같이 형식화 된 주소를 사용하는 것을 제안합니다.
link to r1484 commit in the serf's project repository:
https://demo-server.visualsvn.com/!/#serf/commit/r1484/
link to the current content of the trunk/context.c file in the serf's project repository:
https://demo-server.visualsvn.com/!/#serf/view/head/trunk/context.c
link to the content of trunk/context.c file at revision r2222 in the serf's project repository:
https://demo-server.visualsvn.com/!/#serf/view/r2222/trunk/context.c
중요한 것은 리포지어 개정 번호 인 것 같습니다. 'r'에 의해 접두어. 여기에 다른 답변 중 어느 것도 언급하지 않았으며 이와 같이 형식화 된 주소를 사용하여 VisualSVN 서버에서 소스 파일의 특정 개정을 볼 수있었습니다.