2017-06-23 175 views
0

我有一个bash脚本,它使用SVN历史记录来创建在部署脚本中使用的文件列表。今天我发现了一个小问题,但我想解决。但是,SVN没有帮助。获取已删除文件/文件夹的svn信息

下面是情形:

  1. 提交1 - 的文件夹和文件
    • /中继/文件夹/文件1
    • /中继/文件夹/文件2
  2. 提交2 - 删除整个文件夹和所有文件
    • /主干/文件夹

当我建立我已经删除删除的文件的文件列表,但在这种情况下,删除的文件实际上是一个文件夹。长话短说,我需要确定被删除的svn节点的类型,以便我可以适当地处理它。

SVN提供信息的命令,可以告诉你,这样的信息:

svn info TARGET 

但这似乎并没有与删除的文件的工作。在我上面的例子,如果我尝试运行上已删除的文件夹信息,我得到一个错误:

svn info trunk/folder 

svn: warning: W155010: The node 'trunk/folder' was not found.

svn: E200009: Could not display info for all targets because some targets don't exist

如果我通过从提交的版本号,当它被删除了,我得到了同样的错误:

svn info -r2 trunk/folder 

如果我尝试组合中的任何许多我得到同样的错误:

​​

反正是有得到这些信息在删除的文件夹?

FYI: SVN,编译二○一五年十一月二十○日版本1.7.14(r1542130),19时25分09秒

编辑:这是问题的一个简单的解释。我正在使用7000提交的活动回购协议,任何问题都可以分布在多个非连续修订版本中。我无法升级svn版本。

回答

1

我不确定你的目标和任务到底是什么,为什么你必须手动构建文件列表 - Subversion提供svn list,你也可以使用--xml选项运行。如果您可以直接访问存储库,则还可以尝试使用svnlook treesvnlook changed

顺便说一句,更新你的客户端。 SVN 1.7.x很旧,目前的版本是1.9.x,你应该计划升级。

+0

我确实可以直接访问回购协议,但使用脚本执行工作的人不会。所以svn看出来。我会更深入地研究svn列表。谢谢。 –