1

可能重复:
在颠覆中取消删除文件的简单方法是什么?

我想将一个名为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 删除分支并将其带回仓库。

编辑:

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

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 :)"
4

1 回答 1

1

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

撤消 SVN 中的任何提交是反向合并的工作:您必须知道提交的修订 ID 删除、签出受影响的路径(http://someurl.com/project/-是的,可能是巨大的签出,但这是您的麻烦),反向合并错误修订并提交撤消修订进入回购

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

于 2012-12-13T19:06:43.953 回答