删除和添加文件后合并Subversion历史记录

时间:2019-06-17 05:37:00

标签: svn

我正在使用svn 1.9.7版,而我不小心执行了以下操作:

  

cp dir1 / a.txt dir2 / a.txt

     

svn rm dir1 / a.txt

     

svn添加dir2 / a.txt

     

svn提交

我打算这样做:

  

svn mv dir1 / a.txt dir2 / a.txt

     

svn提交

结果,我再也看不到文件a.txt的先前版本历史记录。如果我浏览回旧版本并检查a.txt的历史记录,仍然可以看到dir1/a.txt的历史记录。

到目前为止,基本目录中已有成千上万的新更改。是否有办法仅在新位置获取a.txt的合并历史记录?自从我移到新位置以来,a.txt中的更改很少。因此,如果完成工作,我不会介意复制粘贴。

P.S .:我读了很多有关similar问题的帖子,但是找不到能解决我的情况的东西。请帮忙!

1 个答案:

答案 0 :(得分:1)

两种可能的方式:

  1. 肮脏的骇客。使用OS-cp和SVN移动创建(在小型新测试仓库中)两个修订,将这些修订转储到转储(svnadmin dump),查找差异并在提交 new “ big”时重播安全性的回购(转储整个回购,转储修订版,将大转储加载到副本,编辑小转储,加载)

  2. 更棘手但又“自然”的方式。在“错误动作”之前将WC更新为修订版:您将在旧位置保存旧文件。分支WC,正确地将文件移动到新位置(与TRUNK中的位置相同),将从TRUNK到BRANCH 进行樱桃拾取合并,以进行修订,从而更改有问题的文件 OR (如果这些变更集包含的文件超过singe)仅合并子树-此singe文件 OR (如果要具有完整的清除历史记录)会在分支点修补后保存文件中的所有更改|应用补丁并在每个补丁的基础上提交BRANCH,返回到TRUNK的HEAD并合并分支。结果,您将获得修复的公共历史记录(其中一部分与旧的“纯主干”相反,在分支中)