Svn 如何合并回还原的更改+;来自备份分支的更多更改? 如何将并行分支(最初在还原之前创建)合并回主干,包括最初从主干还原的更改?

Svn 如何合并回还原的更改+;来自备份分支的更多更改? 如何将并行分支(最初在还原之前创建)合并回主干,包括最初从主干还原的更改?,svn,version-control,merge,tortoisesvn,Svn,Version Control,Merge,Tortoisesvn,我试着在谷歌上搜索“如何在SVN中合并恢复的更改”,但似乎找不到正确的方法。 因此,假设主干的svn日志是这样的 ** TRUNK ** Revision | Description 501 Other people changes 500 Reverted Changes to 498 499 Added some files 498 Production Release 当trunk版本为499时,我在svn/

我试着在谷歌上搜索“如何在SVN中合并恢复的更改”,但似乎找不到正确的方法。 因此,假设主干的svn日志是这样的

    ** TRUNK **
Revision | Description
  501        Other people changes
  500        Reverted Changes to 498
  499        Added some files
  498        Production Release
当trunk版本为499时,我在
svn/branchs/backup
中创建了一个分支,然后我将trunk恢复到498(参见修订版500)。以下是svn中分支
svn/branchs/backup
的外观:

    ** BRANCH **
Revision | Description
    3        More changes
    2        Adding more changes
    1        Branch Created from trunk revision 499 
从那时起,我对
svn/branchs/backup
branch(参见修订版2和3)进行了一些更改,其他人对主干(修订版501)进行了更改。如何将分支合并回主干,包括我最初从主干恢复的更改,即不包括修订版500?(我想这应该是一个带有
无祖先
标志的合并,但它似乎不起作用,或者我可能做错了)


以下是我正在尝试的内容:我想做的第一件事是将主干应用到我的分支上-使我的分支与主干对齐。当我尝试时,SVN希望从我的分支中删除我在499中添加的文件,可能是因为它们在修订版500中被删除。在这种情况下,这样做是错误的。关于如何正确完成此合并,有什么想法吗

想出了一个哈奇的方法:

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

  • 任何后续的中继合并到此分支,反之亦然,都将按预期工作。

    您希望得到什么结果?!首先考虑冲突-编辑或删除的文件@懒虫:我不明白你的问题。我知道我想忽略分支中的一个特定主干修订版(500)。除了那次修订外,对后备箱所做的每一次修改我都想保留下来!拿手榴弹的猴子!在正常情况下,你必须“合并修订范围”(G的关键字)(不包括R500),我不同意@Lazybager。尽管如此,我确实看到了这可能是危险的。在一个典型的情况下,由于恢复,您需要跳过修订,这种方法对我来说是有意义的。我已经在一些地方使用过这种方法,只要你知道你在做什么,这个解决方案对我来说非常有效!