我们不小心从Subversion存储库中删除了'tags'文件夹,我们只打算删除一个特定的标记 . 获取'tags'文件夹的最简单方法是什么?
我们使用TortoiseSVN作为我们的客户端,我认为当我进入repo浏览器并显示日志时,会出现类似于“从此版本中还原更改”的内容,类似于您在工作副本上的类似对话框中看到的内容 . 但那里没有这样的指挥......
只需从早期版本中复制已删除的文件夹即可 .
在Repository Browser中,单击标有HEAD(位于右上角)的按钮以显示您的文件夹仍然存在的修订,然后右键单击该文件夹并选择“Copy to ...”并输入您的路径想要重新创建文件夹(可能与文本框中已有的路径相同) .
对于命令行爱好者:
svn log -v http://svnserver/path/to/folderContainingDeletedFolder
假设您发现该目录已在修订版999中删除(顺便说一下:您可能会发现使用svn repo浏览器更容易找到修订号)
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的其他任何内容),官方书籍可用online .
继raudi的回答之后,在本次修订后对我有用 .
某些svn客户端可能需要使用-r revision参数指定的修订号,而不是在文件夹后使用@,如下所示:
svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"
转到 repository 的 Repository Browser ,右键单击 deleted folder 存在的父文件夹 . 现在,在父文件夹的 Show Log 中,选择您提交删除操作的先前修订版 . 您将有一个列表并右键单击修订信息中的文件夹,然后选择 Update to this Revision .
repository
Repository Browser
Show Log
Update to this Revision
You are done
6 回答
只需从早期版本中复制已删除的文件夹即可 .
在Repository Browser中,单击标有HEAD(位于右上角)的按钮以显示您的文件夹仍然存在的修订,然后右键单击该文件夹并选择“Copy to ...”并输入您的路径想要重新创建文件夹(可能与文本框中已有的路径相同) .
对于命令行爱好者:
假设您发现该目录已在修订版999中删除(顺便说一下:您可能会发现使用svn repo浏览器更容易找到修订号)
瞧,你已经完成了!
在你的情况下,这可能是:
大多数答案都会在一定程度上起作用,但正确答案是丹尼尔的答案 . 做反向合并 . 这样你就可以保留版本历史 .
svn merge -r R1:R2
其中R1是您所在的版本,R2是包含已删除文件/文件夹的修订版 .
您需要进行反向合并 .
有关如何操作的详细信息(以及您希望或需要使用SVN的其他任何内容),官方书籍可用online .
继raudi的回答之后,在本次修订后对我有用 .
某些svn客户端可能需要使用-r revision参数指定的修订号,而不是在文件夹后使用@,如下所示:
转到
repository
的Repository Browser
,右键单击 deleted folder 存在的父文件夹 . 现在,在父文件夹的Show Log
中,选择您提交删除操作的先前修订版 . 您将有一个列表并右键单击修订信息中的文件夹,然后选择Update to this Revision
.You are done