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