如何在Subversion / TortoiseSVN中“取消删除”删除的文件夹?
我们意外删除了我们的Subversion版本库中的'tags'文件夹,我们只打算删除一个特定的标签。 获取“标签”文件夹的最简单方法是什么?
我们使用TortoiseSVN作为我们的客户端,我认为当我进入repo浏览器并显示日志时,会出现类似于您在工作副本的类似对话框中看到的类似于“恢复此版本的更改”的内容。 但是那里没有这样的命令…
只需从早期版本复制删除的文件夹。
在Repository Browser中,点击HEADbutton(在右上angular)显示你的文件夹仍然存在的版本,然后右键单击该文件夹并select“复制到…”并在其中inputpath想要重新创build文件夹(可能是已经在文本框中相同的path)。
对于命令行爱好者来说:
-
首先find您的删除发生的修订号码:
svn log -v http://svnserver/path/to/folderContainingDeletedFolder
说你发现该目录已被删除在版本999(顺便说一句:你可能会发现更容易find与SVN回购浏览器的版本号)
-
从版本减去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"
这些答案大部分将在一定程度上工作,但正确的答案是丹尼尔。 做一个反向合并。 这样你保持版本的历史。
svn merge -r R1:R2
其中R1是您所在的版本,R2是包含已删除的文件/文件夹的版本。
你将需要做一个反向合并 。
有关如何执行此操作的详细信息(以及您希望或需要用SVN完成的其他任何操作),官方书籍可在线获取 。
转到您的repository
Repository Browser
,右键单击存在已删除文件夹的父文件夹 。 现在, Show Log
父文件夹的Show Log
,并select您提交删除操作的前一个修订。 您将拥有一个列表并右键单击修订信息中的文件夹,然后selectUpdate to this Revision
。
你完成了
继这个修改之后,raudi的回答为我工作。
某些svn客户端可能需要使用-r revision参数指定的修订版本号,而不是在文件夹之后使用@,如下所示:
svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"