【问题标题】:Find the file with a given SVN URL within a SVN working copy在 SVN 工作副本中查找具有给定 SVN URL 的文件
【发布时间】:2009-09-22 06:39:39
【问题描述】:

给定一个 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 绑定可能是一种替代方案。

【问题讨论】:

    标签: python svn pysvn


    【解决方案1】:

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

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

    您可以通过尝试将 url 映射到本地路径并仅查看合理的位置来对此进行一些优化,但您会错过由 'svn switch' 创建的其他位置。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2023-04-09
      • 2011-05-12
      相关资源
      最近更新 更多