如果从SVN工作副本中删除目录但尚未提交,则不清楚如何将其恢复 . 当您输入“svn undo d”时,Google甚至建议“在提交前将svn undo delete”作为常见查询,但搜索结果无益 .
编辑:我想要一个适用于subversion 1.4.4的解决方案
svn revert deletedDirectory
Here's the documentation用于 svn revert 命令 .
svn revert
如果使用 rmdir 删除 deletedDirectory 而不是 svn rm ,则需要执行
rmdir
deletedDirectory
svn rm
svn update deletedDirectory
代替 .
1)做
svn revert . --recursive
2)解析输出错误之类的
"Failed to revert 'dir1/dir2' -- try updating instead."
3)为每个错误目录调用svn:
svn up dir1/dir2
对我有用的是
svn revert --depth infinity deletedDir
从您删除的目录上方的级别执行(递归)还原操作 .
为了使它成为一个单一的衬垫你可以尝试类似的东西:
svn status | cut -d ' ' -f 8 | xargs svn revert
我能找到的最简单的解决方案是从工作副本中删除父目录(使用rm -rf,而不是svn delete),然后在祖父节点中运行svn update . 例如,如果你删除了/ b / c,rm -rf a / b,cd a,svn up . 这让一切都恢复了 . 当然,如果您希望保留父目录中没有其他未提交的更改,这只是一个很好的解决方案 .
希望下次我谷歌这个问题时,这个页面将位于结果的顶部 . 如果有人建议采用更清洁的方法,那会更好 .
在提交之前,您可以删除该文件夹并更新父目录:
rm -r some_dir
svn update some_dir_parent
7 回答
svn revert deletedDirectory
Here's the documentation用于
svn revert
命令 .编辑
如果使用
rmdir
删除deletedDirectory
而不是svn rm
,则需要执行svn update deletedDirectory
代替 .
1)做
2)解析输出错误之类的
3)为每个错误目录调用svn:
对我有用的是
从您删除的目录上方的级别执行(递归)还原操作 .
为了使它成为一个单一的衬垫你可以尝试类似的东西:
我能找到的最简单的解决方案是从工作副本中删除父目录(使用rm -rf,而不是svn delete),然后在祖父节点中运行svn update . 例如,如果你删除了/ b / c,rm -rf a / b,cd a,svn up . 这让一切都恢复了 . 当然,如果您希望保留父目录中没有其他未提交的更改,这只是一个很好的解决方案 .
希望下次我谷歌这个问题时,这个页面将位于结果的顶部 . 如果有人建议采用更清洁的方法,那会更好 .
在提交之前,您可以删除该文件夹并更新父目录:
rm -r some_dir
svn update some_dir_parent