给定 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,尽管 native Python SVN 绑定(bind)可以作为替代方案。
最佳答案
Subversion 本身不使用从 url 到工作副本位置的向后映射。检查 url 使用情况的最稳定方法是对工作副本执行递归“svn info”调用。
这将为您提供所有文件和目录的 URL,您可以自己进行匹配。
您可以通过尝试将 URL 映射到本地路径并仅查看合理的位置来对此进行优化,但您会错过“svn switch”创建的其他位置。
我不知道“svn info”是如何映射到 python 绑定(bind)中的,但您很可能可以使用客户端类上的一些 info2() 函数。
关于python - 在 SVN 工作副本中查找具有给定 SVN URL 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1458457/