我们有Subversion 1.6.11,FSFS后端在CentOS 6.3上通过svnserve -d提供服务。我把我们转移到一个新的服务器上,不知怎么搞砸了转储文件的加载(我们使用了Chris、svnbackup.pl和svnrestore.pl,它们基本上是做svnadmin转储和加载的)。我们花了一周的时间,为那些在他们的工作目录中有一个缺少的修订版中的文件的人提供了一堆校验和错误。它们将进行更新,新服务器上将不存在该文件的校验和,因为在服务器迁移期间没有加载修订。
我决定将全部转储重新加载到新创建的repos中,然后从有问题的repos中执行一个增量转储,只为了捕获上周的任何提交,然后在完整转储的基础上恢复它,
现在我有了与旧的回复同步的新回复,abd也有上个星期的工作。
我的问题是:如果缺少修订,这会如何影响更新(最近/更高编号)修订中的路径中修改的文件?如果有人为test.cpp在第50版中添加了一个函数,而下一次修改该文件是在第70版和第90版中,而我做了一次以某种方式丢失修订50的还原,那么test.cpp会在修订70和90中丢失该函数吗?我知道有一些二进制的数学公式可以计算出skip方案,但是让我假装我不够聪明,不能理解它,请帮我把它关起来。
发布于 2013-05-06 06:45:05
假设脚本执行转储和加载函数的方式没有什么可怕的错误,则不会。
转储格式独立于存储库格式。在单个版本转储中更改的文件将完全像在转储中的修订版一样结束,而不考虑任何缺失的中间修订(并且可能会吹走自转储版本以来所做的更改)。转储格式不对过去修订的可用性作出假设。
https://serverfault.com/questions/505134
复制相似问题