SVN提交前撤销删除

如果您从SVN工作副本中删除一个目录,但还没有提交,那么如何恢复该目录并不明显。 当你input“svn undo d”时,Google甚至会build议“提交之前的svn撤消删除”作为常见查询,但search结果是无用的。

编辑:我想要一个在颠覆1.4.4工作的解决scheme

svn revert deletedDirectory

这里是 svn revert命令的文档 。


编辑

如果使用rmdir而不是svn rm删除deletedDirectory则需要执行此操作

svn update deletedDirectory

代替。

1)做

 svn revert . --recursive 

2)parsing错误输出

 "Failed to revert 'dir1/dir2' -- try updating instead." 

3)为每个错误目录调用svn:

 svn up dir1/dir2 

对我有效的是

 svn revert --depth infinity deletedDir 

从删除的目录之上的级别执行(recursion)恢复操作。

为了使它成为一个class轮,你可以尝试像这样:

 svn status | cut -d ' ' -f 8 | xargs svn revert 

我能find的最简单的解决scheme是从工作副本(使用rm -rf,而不是svn delete)删除父目录,然后在祖父母中运行svn update。 例如,如果你删除了/ b / c,rm -rf a / b,cd a,svn up。 这把一切都带回来了。 当然,如果在父目录中没有其他未提交的更改,这只是一个很好的解决scheme。

希望这个页面将在下一次我谷歌这个问题的结果的顶部。 当然,如果有人提出更清洁的方法,情况会更好。

您可以在提交之前删除该文件夹并更新父目录:

rm -r some_dir

svn update some_dir_parent