获取已删除文件/文件夹

时间:2017-06-23 13:02:27

标签: svn

我有一个bash脚本,它使用SVN历史记录来创建在部署脚本中使用的文件列表。今天我发现了一个很小的错误,但我想解决。但是,SVN没有帮助。

以下是该方案:

  1. 提交1 - 文件夹和文件
    • /中继/文件夹/文件1
    • /中继/文件夹/文件2
  2. commit 2 - 删除了整个文件夹和所有文件
    • /中继/文件夹
  3. 当我构建文件列表时,我已经删除了已删除的文件,但在这种情况下,删除的文件实际上是一个文件夹。简而言之,我需要确定已删除的svn节点的类型,以便我能够适当地处理它。

    SVN提供了一个info命令,可以告诉您这些信息:

    svn info TARGET
    

    但这似乎不适用于已删除的文件。在上面的示例中,如果我尝试在已删除的文件夹上运行信息,则会出现错误:

    svn info trunk/folder
    
      

    svn:警告:W155010:找不到节点“trunk / folder”。

         

    svn:E200009:无法显示所有目标的信息,因为有些   目标不存在

    如果我在删除时从提交中传递了修订号,我会收到同样的错误:

    svn info -r2 trunk/folder
    

    如果我尝试任何多种组合,我会得到同样的错误:

    svn info -r1 trunk/folder
    svn info -r2 trunk/folder@2
    svn info -r1 trunk/folder@2
    svn info -r2 trunk/folder@1
    

    是否有关于已删除文件夹的信息?

    供参考: svn,版本1.7.14(r1542130)编译于2015年11月20日,19:25:09

    编辑:这是该问题的简化说明。我正在使用7000个提交的活动仓库,任何给定的问题都可以分布在多个非连续的修订版中。我无法升级svn版本。

1 个答案:

答案 0 :(得分:1)

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

BTW,更新您的客户。 SVN 1.7.x很老了;当前版本是1.9.x,您应该计划升级。