2

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

例如,给定当前目录:

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

其中有这个 SVN URL:

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

1 回答 1

4

Subversion 不使用从 url 到工作副本位置本身的这种反向映射。检查 url 使用的最稳定方法是对工作副本执行递归 'svn info' 调用。

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

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

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

于 2009-09-22T07:51:50.597 回答