【问题标题】:Merge missed commits合并错过的提交
【发布时间】:2014-03-24 04:20:16
【问题描述】:

最近在用svn合并代码时遇到了一个问题。这是场景:

  1. 主干 -> 分支(合并)

  2. 对分支进行了更改

    • cd my_project_branch
    • svn commit -m "2. 对分支进行了更改" *
  3. 分支 -> 主干(合并)

  4. 对主干进行了更改

    • cd my_project_trunk
    • svn commit -m "4. 对主干进行了更改" *
  5. trunk -> 分支(合并但忘记了一项更改!)[即合并的更改未提交到分支]
  6. 看分支
  7. 找出遗漏的东西
  8. 尝试合并主干->再次分支以解决遗漏的事情

  9. 撞!没有要合并的更改!

换句话说,我可以看到我在主干上有一个应该在分支上的更改,但我暂时无法合并它(因为它已部分合并)。有什么补救办法吗?

【问题讨论】:

    标签: svn version-control merge


    【解决方案1】:

    如果你有一组精确的命令可以复制这个场景,我会很想看看它(从一个新的 repo 开始,然后从那里开始)。如果是这样,您复制的是哪个版本的 Subversion。

    也就是说,如果您想合并 Subversion 忽略的某些内容,可能是由于 mergeinfo。在这种情况下,您可能只需与 --ignore-ancestry 进行樱桃选择合并,即svn merge -c 1234 --ignore-ancestry ^/trunk,其中修订版 r1234 是您想要合并的更改。

    【讨论】:

    • 我认为这里的SVN版本不是问题我认为这是常见的SVN问题(?)。我用的是 1.7.8。我在清晰的存储库上从头开始复制了这个场景。命令列表是标准的(我为此使用了 Subclipse 插件):co,up,commit,merge - 没什么复杂的。不幸的是,您的解决方案对我不起作用 - 在您的命令之后,我看不到文件中丢失的更改。
    • 您能否在您的问题中包含用于重现该问题的确切命令。自 1.7.8 以来发生了很多变化,尤其是在合并方面,您断言这是 Subversion 的常见问题并没有多大意义。
    • 请看我的更新。我已经为提供的步骤添加了命令。
    • 很难帮助解决摘要中的合并问题。历史在合并中起着非常重要的作用。如果没有看到回购的历史,我无法判断合并发生了什么。这就是为什么我要求您提出一个从新存储库开始的复制配方(这使我可以看到所有历史记录,因为您提供了针对存储库运行的每个命令)。我知道那很不方便。唯一的其他选择是授予对存储库的访问权限。
    猜你喜欢
    • 2015-03-04
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 2016-04-19
    • 2011-09-05
    • 2019-11-22
    相关资源
    最近更新 更多