2

Subversion作業コピー(現在の作業ディレクトリなど)の開始点とターゲットSVN URLが与えられた場合、そのSVNURLを持つ作業コピー内のファイルを見つけたいと思います。

たとえば、次の現在のディレクトリがあるとします。

c:\Subversion\ProjectA\a\b\c\

このSVNURLがあります:

https://svnserver/svn/ProjectA/trunk/a/b/c/

このターゲットSVNURLを使用してハードドライブ上のファイルを検索したい:

https://svnserver/svn/ProjectA/trunk/a/x/y/test.txt

この例では、次のようになります。

c:\Subversion\ProjectA\a\x\y\test.txt

まず、SVN APIはこれを行うための関数を提供しますか?第二に、そうでない場合、それを実装するための信頼できる(クロスプラットフォーム)方法は何ですか?

Pythonが私のターゲット言語であり、pySvnを使用していますが、ネイティブのPythonSVNバインディングが代わりになる可能性があります。

4

1 に答える 1

4

Subversionは、URLから作業コピーの場所自体へのこの逆方向のマッピングを使用しません。URLの使用を確認する最も安定した方法は、作業コピーに対して再帰的な「svninfo」呼び出しを実行することです。

これにより、すべてのファイルとディレクトリのURLが得られ、自分で照合を行うことができます。

ローカルパスにURLをマッピングし、適切な場所のみを確認することで、これを少し最適化できますが、「svnswitch」によって作成された他の場所を見逃すことになります。

'svn info'がPythonバインディングにどのようにマッピングされているかはわかりませんが、使用できるクライアントクラスにinfo2()関数がある可能性があります。

于 2009-09-22T07:51:50.597 に答える