撤消SVN从depo删除

时间:2012-12-13 17:04:19

标签: svn

  

可能重复:
  What’s a simple way to undelete a file in subversion?

我想将一个名为 prj1 的新项目导入depo。在 prj1 内,有 sub1 sub2 ,...

cd prj1    
svn import prj1 http://someurl.com/project/branches/

但这是错误的路径,我应该在上面一行的末尾添加 prj1 ,所以我打算删除prj1中的子项目,我打算这样做:

svn remove http://someurl.com/project/branches/sub1

但我错误地做了:

svn remove http://someurl.com/project/branches

结果分支消失了。在分支内,与 prj1 并行,还有一些其他项目我没有本地副本(尚未检出)。我想知道是否有办法撤消分支的意外svn删除并将其带回depo。

修改

根据Lekensteyn,Lazy Badger和https://stackoverflow.com/a/3128696/1383356的建议,我通过查看最新版本(102)解决了问题,并使用svn merge回滚到版本100(导入之前)。以下是详细信息:

svn co http://someurl.com/project
cd project
svn merge -r 102:100 http://someurl.com/project
svn commit -m "Rolling back to the old days of r100 :)"

1 个答案:

答案 0 :(得分:1)

您的导入和删除是存储库中的单独修订(使用svn log检查

撤消SVN中的任何提交都是反向合并的工作:您必须知道提交的修订ID,删除,结帐受影响的路径(http://someurl.com/project/ - 是的,可能巨额结帐,但这是你的麻烦),重新编写错误的修订并将修订撤消到repo

另一种方法是在最新修订时签出http://someurl.com/project/branches/,当它存在时(使用PEG语法),分支它,更新到HEAD,合并分支(真的恢复树),检查WC中的结果,提交