该项目的另一个开发人员没有通过SVN正确地移动一个版本化文件夹。因此,SVN显示删除了一个目录树,并创建了另一个目录树,但没有显示一个目录树仅仅是另一个目录树的重命名的结果。这会影响到peg的修订、dif和源代码历史。
有没有办法解决这个问题,例如通过svndump
基本上,将trunk/b标记为从trunk/a复制而来。
发布于 2011-10-19 11:26:04
您可以手动编辑该提交的svndump文件,以删除所有添加的内容,并使用copy-from和copy-from-rev.将其更改为主干/a的单个添加。然后,您需要转储所有以前的修订和所有后续修订,然后按顺序将所有修订加载到新的存储库中,并替换您的存储库。然后,您需要每个人从新的存储库中签出,并丢弃他们的旧工作副本。
您可以避免手动编辑部分,假设错误的重命名是该提交中唯一的内容。假设错误的版本是$REV。将修订版本0转储到(但不包括) $REV。将这些文件加载到新的存储库中。从新的存储库中签出,执行正确的重命名,然后提交。通过旧存储库中的HEAD增量转储$REV+1,并将其加载到新存储库中。
发布于 2011-10-19 15:26:56
您可以在修改之前从版本进行分支,执行正确的重命名,然后将其合并到主干中。
当然,在合并过程中,您需要报告“new”目录中的修改。
这样,你就有了历史!
或者如果日志没有什么修改,可以通过修改得到一个补丁,将修改后的日志还原成svn,手工修改补丁,排除删除/创建操作。
https://stackoverflow.com/questions/7816173
复制相似问题