【问题标题】:How do you merge back your reverted changes+more changes from a backup branch?您如何从备份分支合并回您恢复的更改+更多更改?
【发布时间】:2017-03-15 21:26:45
【问题描述】:

如何将并行分支(最初在恢复之前创建)合并回主干,包括最初从主干恢复的更改?

我尝试在 Google 上搜索“如何合并回您在 SVN 中恢复的更改”,但我似乎找不到正确的方法来执行此操作。 所以假设这就是主干的 svn 日志的样子

    ** TRUNK **
Revision | Description
  501        Other people changes
  500        Reverted Changes to 498
  499        Added some files
  498        Production Release

当主干的版本为 499 时,我在 svn/branches/backup 中创建了一个分支,然后我将主干恢复为 498(参见修订版 500)。这是分支svn/branches/backup 在 SVN 中的样子:

    ** BRANCH **
Revision | Description
    3        More changes
    2        Adding more changes
    1        Branch Created from trunk revision 499 

从那时起,我对svn/branches/backup 分支进行了一些更改(请参阅修订版 2 和 3),其他人也对主干进行了更改(修订版 501)。如何将我的分支合并回主干,包括我最初从主干恢复的更改,即不包括修订版 500? (我在想这应该是与no-ancestry 标志的合并,但它似乎不起作用,或者我可能会出错)

这就是我正在尝试的:我在想首先要做的就是将主干应用到我的分支 - 使我的分支与主干对齐。当我尝试时,SVN 想从我的分支中删除我在 499 中添加的文件,这可能是因为它们在修订版 500 中被删除了。在这种情况下,这是错误的做法。关于如何正确完成此合并的任何想法?

【问题讨论】:

  • 你想得到什么结果?!首先考虑冲突 - 编辑或删除的文件!
  • @LazyBadger:我不明白你的问题。我知道我想忽略我分支中的一个特定主干修订版 (500)。除了我想保留的修订版之外,对主干所做的所有更改

标签: svn version-control merge tortoisesvn


【解决方案1】:

想出了一个 HACKEY 方法:

  1. 更新分支结帐目录上的mergeinfo 属性以包含/trunk/ProjectDir:500,表示此分支已与主干修订版500 合并。
  2. 将主干合并到分支中,SVN 将跳过修订版 500 并合并自创建分支以来所做的所有其他更改。
  3. 提交更改,您的分支上的修订号将高于主干。

随后将主干合并到此分支,反之亦然。

【讨论】:

  • 警报!手榴弹的猴子!您必须在正常世界中“合并修订范围”(G 的关键字)(不包括 r 500)
  • 我不同意@LazyBadger。虽然,我确实看到了这可能是危险的。在典型的情况下,您需要因为还原而跳过修订,这种方法对我来说很有意义。我现在在一些地方使用过这种方法,只要你知道你在做什么,这个解决方案对我来说效果很好!
猜你喜欢
  • 1970-01-01
  • 2011-11-09
  • 2015-11-15
  • 2022-01-22
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 2016-07-11
相关资源
最近更新 更多