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

标签 python svn pysvn

给定 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/

相关文章:

python - 确定细胞二维列表的邻居

python - 如何执行存储在列表中的Python代码?

python - Python 中的马尔可夫聚类

用于新语言的基于 python 的朴素贝叶斯分类器

svn - Subversion 不会更新到旧版本

svn - 合并时忽略文件/文件夹

python - 如何使用 pysvn 获取 svn 目录状态

svn - 同一文件的颠覆和多个副本(文本和二进制)

svn 日志在分支开始处停止

python - 由于 pysvn 的动态导入,Eclipse PyDev 发现不存在的错误