2009-09-22 54 views
2

給定Subversion工作副本的起點(例如當前工作目錄)和目標SVN URL,我想在工作副本中找到該文件那個SVN URL。在SVN工作副本中查找包含給定SVN URL的文件

例如,這當前目錄下式給出:

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

具有這種SVN網址:

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

我想找到與此目標SVN URL硬盤驅動器上的文件:

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

其在該示例將是:

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

首先,SVN API是否提供了這樣的功能?其次,如果沒有,那麼實施它的好的可靠(跨平臺)方法是什麼?

Python是我的目標語言,我使用pySvn,但本機Python SVN綁定可能是另一種選擇。

回答

4

Subversion不使用這種從url到工作副本位置本身的反向映射。檢查url使用最穩定的方法是對工作副本執行遞歸'svn info'調用。

這給你所有文件和目錄的URL,你可以自己做匹配。

你可以通過嘗試在本地路徑上映射URL並只查看明智的位置來優化這一點,但是你會錯過由'svn switch'創建的其他位置。

我不知道'svn info'如何映射到python綁定中,但在您可以使用的客戶端類中最有可能存在一些info2()函數。