33

VisualSVN サーバーを使用して SVN リポジトリをホストしていますが、一部の自動化作業のために、http[s] レイヤーを介して特定のバージョンを取得できるようにしたいと考えています。

サーバー(httpd?)へのhttp [s]リクエストを介してHEADバージョンを取得できますが、おそらくクエリ文字列としてリビジョンを指定する機能はありますか?なかなか見つからないような…

特定のフォルダーには多くのファイルがあり、それらすべてを必要としないため、できる限りチェックアウトを実行したくありません-1つまたは2つだけです。

4

5 に答える 5

87

決して遅くなるよりはましだ。 https://entire/Path/To/Folder/file/?p=REV

?p=Revはリビジョンを指定します

于 2010-06-21T12:59:10.603 に答える
7

この質問に対する答えが既に見つかっている場合はわかりませんが、Apache の通常の svn サーバーでは、次の方法で特定のリビジョンにアクセスできます。

http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
  • ホストと REVISION_NUMBER は明らかです
  • /path/to/file.ext はレポ ルートに相対的です

私はvisualsvnを使ったことがないので、あなたの走行距離は異なるかもしれません.

于 2009-02-22T11:24:52.000 に答える
4

Subversion は、その情報にアクセスするために内部で使用する Uris を公に文書化していません。(そして、それが文書化されているところでは、これが将来のバージョンで変更される可能性があることが明示的に述べられています)

Web 上のこの情報にアクセスするには、Web ビューア (例: 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 の次のいくつかのバージョンの 1 つは、古いバージョンを取得するために使用できる公開 URL の文書化を開始します。]

于 2008-10-01T13:59:02.463 に答える
2

これ:

Subversion での WebDAV の使用

助けるべきです。

于 2009-02-22T12:24:29.110 に答える