在SVN工作副本中查找具有给定SVN URL的文件

时间:2009-09-22 06:39:40

标签: python svn pysvn

鉴于Subversion工作副本(例如当前工作目录)和目标SVN URL的起点,我想在工作副本中找到具有该SVN URL的文件。

例如,给定当前目录:

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

有这个SVN网址:

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

我想使用此目标SVN网址在硬盘驱动器上找到该文件:

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

在这个例子中将是:

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

首先,SVN API是否提供了执行此操作的功能?其次,如果没有,实施它的什么是可靠的(跨平台)方法?

Python是我的目标语言,我正在使用pySvn,尽管本机Python SVN绑定可能是另一种选择。

1 个答案:

答案 0 :(得分:4)

Subversion不使用从url到工作副本本身的这种向后映射。检查网址使用的最稳定方法是对工作副本执行递归“svn info”调用。

这为您提供了所有文件和目录的URL,您可以自己进行匹配。

您可以通过尝试在本地路径上映射网址并仅查看合理位置来优化此位,但您会错过“svn switch”创建的其他位置。

我不知道'svn info'是如何在python绑定中映射的,但是很可能在你可以使用的客户端类上有一些info2()函数。