我有一个一年前的项目,我想从其中恢复源代码。该项目的SVN存储库只有db文件夹;然而,db文件夹似乎是完整的,包括db/revs文件夹中的所有文件。我没有这个SVN存储库的备份,我也不知道应该在那里的其他所有文件发生了什么。
毫不奇怪,我无法从这个存储库中恢复工作副本。我尝试从一个工作的存储库中复制基本的数据库结构,并且尝试使用svnadmin恢复,但我无法从中获取任何数据。
至少可以从数据库中检索最后一个工作副本吗?从那时起我可以开始一个新的SVN了。
谢谢!
发布于 2013-11-04 21:38:51
在db目录之外,确实没有什么需要。
这就是db目录之外的内容: README.txt (只是解释这是一个Subversion repo,不重要) conf (配置文件的目录,大部分用于与svnserve一起使用时,对于恢复回购的内容并不重要)(指定Subversion repo的格式,这个文件中应该没有超过"5\n“的文件,并且自subversion 1.4.x之后没有改变)(带有钩子脚本的目录,无需从回购锁中读取数据)(自1.3.x以前就没有使用过的存储库的锁文件位置)
在这种情况下,svnadmin恢复并没有那么大的帮助。它主要用于基于BDB的存储库(您可能没有使用)。它在FSFS存储库中不起什么作用。
然而,你应该能够做到:
svnadmin create new-repo
rm -rf new-repo/db
cp -a old-repo/db new-repo我建议,一旦你这样做,创造另一个新的回购和倾销,并重新装入它:
svnadmin create final-repo
svnadmin dump new-repo | svnadmin load final-repo您可能在1.4.x之前有一个带有Subversion版本的回购版本,在这种情况下,您可能需要对格式文件进行稍微的操作。您可以在这里看到格式文件的历史(在顶部附近,请阅读SVN_REPOS__FORMAT_NUMBER之前的注释):repos/repos.h
当然,和往常一样,当试图恢复一些东西时,对一个副本工作,而不是你唯一的副本。
https://stackoverflow.com/questions/19775582
复制相似问题