重定位和升级后,svn checkout失败并显示“E160006:No such revision”

时间:2015-01-12 23:36:40

标签: svn version-control

我有一个SVN存储库,最近才开始抱怨特定文件夹的检出结果,因为" E160006:没有这样的修订版XXX",其中XXX是特定版本的编号。缺失的修订版似乎是从6年前开始的。结帐其他文件夹工作正常。我不确定是什么造成这种情况,但几周前我转而使用我原来使用svnsync维护的原始存储库的备份。我最近也更新了我的(ubuntu linux)操作系统,它导致subversion请求我执行" svn upgrade"在我的工作副本上,我试图,但由于缺少VPN连接,我不得不停止升级,导致完全无法正常工作的副本(但我不知道工作副本的问题可能是什么与结帐这个问题有关;更可能的问题是在另一个方向)。

我有什么办法可以解决这个问题(例如,恢复丢失的修订或只是指示subversion忽略它们)?我有原始的存储库," svnsync repo"是生成的,但是这个原始存储库缺少最近的提交。

谢谢, 大卫

1 个答案:

答案 0 :(得分:0)

所以我自己想出了解决这个问题的方法。因为我有原始的,未经破坏的存储库,我使用以下方法创建了一个新的克隆:

svnadmin create /path/to/newclone
svnsync initialize file:///path/to/newclone https://url/to/orginalrepo
svnsync sync file:///path/to/newclone

然后我指示新克隆同步到原始仓库的旧(已损坏)克隆:

svnsync initialize --allow-non-empty file:///path/to/newclone file:///path/to/oldclone

--allow-non-empty选项允许我同步oldclone中的最新修订版,而不用担心newclone中有修订版没有oldclone:

svnsync sync file:///path/to/newclone

这产生了一个工作存储库,其中包含originalrepo和oldclone的所有修订版。