今天下午,在注意到构建破坏以及某些文件看起来像旧版本(大约2周龄)这一事实后,我检查了svn日志。显然,就在今天下午,其中一位开发人员对旧目录中的目录进行了“svn副本”。因此,该目录中所有文件的最新版本“即头”似乎真的很旧,所有历史记录“即日志”甚至更旧。
然而,我认为我可以通过使用另一个“svn副本”恢复(即疾病是治愈)。我正在考虑做的是找到坏的“svn副本”完成的修订(比如转1234),减去1(1233)并做:
svn copy -r 1233 file://path/to/messed/up/dir file://path/to/messed/up/dir
应该恢复最新版本,以及恢复我的所有历史记录。我是对的吗?
答案 0 :(得分:7)
根据the SVN book,
svn merge -c -1234
应该这样做。
书中有关于此的全部section。
详细说明:
-c -1234
转换为-r 1234:1233
,从版本1234恢复更改。
答案 1 :(得分:1)
此复制命令不起作用有两个原因:
要解决此问题,您需要
删除当前的dir对象:
svn rm file:///path/to/messed/up/dir
使用“peg revisions”复制
svn cp file:///path/to/messed/up/dir@1233 file:///path/to/messed/up
答案 2 :(得分:-2)
可能,但先做好备份。
实际上,我想知道为什么你没有可以从已经恢复的每日备份...你的SVN存储库肯定是足够重要的吗?