我有一个Subversion存储库的两个工作副本,一个trunk,还有一个我创建的分支。
我不小心删除了存储库浏览器中的分支。如何恢复分支?有没有办法撤消整个存储库的最新提交?
答案 0 :(得分:91)
如果您使用TortoiseSVN,这是一个解决方案:
答案 1 :(得分:74)
使用:
svn cp [path to deleted branch]@[revision before delete] [new path]
例如:
svn cp svn://myrepo.com/svn/branches/2.0.5@1993 \
svn://myrepo.com/svn/branches/2.0.5_restored
1993年是删除前的修订版......
Here是一些很好的文档......
必须有一些方法可以转义用户名中的@
符号...
答案 2 :(得分:4)
假设您的上一次修订是108:
svn merge --revision 108:107
svn diff
svn commit -m "Reverted revision 108"
您还可以将源URL添加到合并中:
svn merge --revision 108:107 http://svn/repo/
Stack Overflow上的其他地方: Undoing a commit in TortoiseSVN
答案 3 :(得分:3)
我遇到了这个问题,但上面的命令对我没用。什么做得更容易。在删除之前,我检查了一个版本的分支。
删除的修订版本是9331.我在9330检查了它:
svn co https://svn.acme.com/svn/giantFlySwatterTargetingSystem/branches/bug1234@9330 restored
这是我想要的简单解决方案。
答案 4 :(得分:1)
这对我有用,
svn cp --username your_user_name HTTPS:// <强> path_to_your_repo 强> /支链/的 deleted_branch_name 强> @ <强> last_revision_before_deletion < /强> HTTPS:// <强> path_to_your_repo 强> /支链/的 new_name_for_branch 强>
答案 5 :(得分:1)
或者,如果是删除分支的单个提交:
恢复提交然后提交
svn merge -c -REV .
svn commit -m "Reverting deletion of branch XYZ"
答案 6 :(得分:0)
我遇到了同样的问题并在SmartSVN(Enterprise 6.0.2)中以这种方式解决了这个问题: