1

如果我在主干中对 3 个不同的文件进行更改,分别是修订版 40、45 和 47,而这些文件自修订版 15 以来都没有更改,我如何将这些修订版合并到分支中(在修订版 30 中进行并且自) 以便我只获得每个文件的 rev 15 和 rev 40、45 和 47 之间的更改?

在中间版本中进行了其他更改(显然),但它们不会影响有问题的文件,我不希望这些更改出现在分支中。

4

2 回答 2

1

如果您只在这些提交中对这些文件进行了更改,那么请继续合并这些修订号。如果在这些提交中更改了其他文件,并且您不想要这些更改,我可能会继续进行合并,然后恢复您不想修改的文件的更改,然后进行提交。

于 2008-12-23T17:51:10.390 回答
0

在我们的系统中,我们不断地进行这样的合并。在大多数情况下,一切都很好。

您可以在所有三个修订版上运行合并,只要更改不相互依赖,您就很好。

使用 TortoiseSVN 很容易,因为您可以简单地指定40,45,47为范围匹配。否则,只需svn merge为每个修订声明单独发布一个,它将把它们拉到一起。

如果您没有引入的更改影响相同的行,您将遇到合并冲突。这是最好的情况,因为这意味着您需要立即查看它以解决冲突。但是,与往常一样,仅仅因为它不是冲突,并不意味着您不会在编译/运行时遇到一些逻辑错误。

我个人每周做几百个这样的工作,所有这些都使用自动化脚本。由于我们的代码结构(一个大型存储库,其中大多数更改不会影响相同的文件),我们每周只会遇到一些冲突。

于 2008-12-23T20:45:48.027 回答