【问题标题】:Combining Subversion History after deleting and adding a file删除和添加文件后合并 Subversion History
【发布时间】:2019-06-17 05:37:00
【问题描述】:

我使用的是 svn 版本 1.9.7,我不小心做了以下事情:

cp dir1/a.txt dir2/a.txt

svn rm dir1/a.txt

svn add dir2/a.txt

svn 提交

虽然我打算这样做:

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

svn 提交

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

到目前为止,基本目录中已有数千个新更改。有没有办法在新位置获取 a.txt 的综合历史记录?自从我搬到新位置后,a.txt 几乎没有变化。所以如果能完成工作,我不介意复制粘贴。

P.S.:我已经阅读了很多关于 similar 问题的帖子,但我找不到可以解决我的情况的东西。请帮忙!

【问题讨论】:

    标签: svn


    【解决方案1】:

    两种可能的方式:

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

    2. 更棘手但“自然”的方式。在“坏动作”之前将 WC 更新为修订版:您将在旧位置拥有旧文件。分支WC,正确移动文件到新位置(与TRUNK中的位置相同),执行cherry-pick合并从TRUNK到BRANCH以进行修订,这会更改有问题的文件OR(如果这些变更集有多个单一文件)只需合并子树 - 这个单一文件 OR(如果您想拥有完整且干净的历史记录)将分支点后文件中的每个更改保存到补丁|应用补丁并在每个补丁的基础上提交 BRANCH,返回到 TRUNK 的 HEAD 并合并分支。结果,您将获得修复的共同历史记录(其中一部分位于与旧的“纯树干”相反的分支中)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多