代码之家  ›  专栏  ›  技术社区  ›  Borek Bernard

如何在Subversion/Tortoissesvn中“撤消删除”已删除文件夹?

  •  90
  • Borek Bernard  · 技术社区  · 15 年前

    我们意外地从Subversion存储库中删除了“tags”文件夹,我们只打算删除一个特定的标记。把“标签”文件夹拿回来最简单的方法是什么?

    我们使用Tortoissesvn作为我们的客户,我认为当我进入repo浏览器并显示日志时,会有类似于“从这个版本还原更改”的内容,类似于您在工作副本的类似对话框中看到的内容。但是没有这样的命令…

    6 回复  |  直到 12 年前
        1
  •  109
  •   Karsten    12 年前

    只需将已删除文件夹从早期版本复制回即可。

    在存储库浏览器中,单击标有head(右上角)的按钮以显示修订版,此时文件夹仍然存在,然后右键单击该文件夹并选择“复制到…”,然后输入要在其中重新创建文件夹的路径(可能是文本框中已存在的同一路径)。

        2
  •  73
  •   raudi    14 年前

    对于命令行爱好者:

    • 首先找到删除位置的修订号:

      svn log -v http://svnserver/path/to/folderContainingDeletedFolder
      

    假设您发现该目录已在版本999中删除 (顺便说一句:您可能会发现使用SVN repo浏览器更容易找到修订号)

    • 从修订版复制文件夹 负1

      svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"
      

    嘿,你完了!

    在您的情况下,这可能是:

        svn copy http://svnserver/project/tags@998 http://svnserver/project/tags -m "undeleted folder"
    
        3
  •  11
  •   andrewsi Laxman Battini    13 年前

    这些答案中的大多数在一定程度上是有效的,但正确的答案是丹尼尔的。反向合并。这样就可以保存版本历史。

    svn merge -r R1:R2

    其中,r1是您所在的版本,r2是包含已删除文件/文件夹的版本。

        4
  •  7
  •   madth3 MCL    12 年前

    你需要做一个 反向合并 .

    有关如何做的详细信息(以及几乎所有你想要或需要与SVN做的事情),官方书籍是可用的。 online .

        5
  •  3
  •   Sirko    12 年前

    接下来是劳迪的回答,在这次修改后对我很有用。

    某些SVN客户端可能需要使用-r revision参数指定的修订号,而不是在文件夹后面使用@,如下所示:

    svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"
    
        6
  •  2
  •   Abdul Munim    15 年前

    古托 Repository Browser 你的 repository ,右键单击父文件夹, 已删除文件夹 存在的。现在, Show Log 并选择提交删除操作的上一个修订。您将得到一个列表,右键单击修订信息中的文件夹,然后选择 Update to this Revision .

    你已经完成了

    推荐文章