是否可以通过 SVN/Tortoise/Subclipse 合并但排除某些修订
Is it possible to merge but excluding certain revisions by SVN/Tortoise/Subclipse
假设项目有以下修订
rev 1000
rev 1001
..
rev 1008
...
rev 1011
...
rev 1015
是否可以有任何非手动解决方案来包括从 1000
到 1015
的所有修订但排除 1008
和 1011
?来自 Subversion/Tortoise/Subclipse 的工具或命令是首选。
如果您使用的是 TortoiseSVN,则过程相对简单:
- 右键单击要将更改合并到的文件夹。
- TortoiseSVN > 合并...
- 合并类型默认应该select"Merge a range of revisions",所以
点击下一步。
- 指定 URL
- 在Revision range to merge框中,勾选特定范围,然后使用
1000-1007,1009-1010,1012-1015
- 然后单击下一步,然后单击合并。
这将有效地合并除 1008 和 1011 之外的所有更改。或者,如果您不介意在 1011 之后合并所有内容,则可以使用 1012-HEAD
。
一个选项是指定要合并的修订范围。但是,另一种方法是 "block" 合并您不想要的修订。您可以使用 --record-only 选项执行此操作。 Subclipse merge UI 为此有一个特定的 UI 选项:Manually record merge information (Block one or more revisions)。使用此选项,您可以通过向导并选择您不想合并的特定修订版(1008 和 1011)。完成后,它会将这些修订记录为已合并到合并信息中。所以现在您可以返回并合并该范围内的所有修订,SVN 将跳过这两个修订,因为它假定它们已经合并。
在 SVN Book 中描述了这个过程:http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge.advanced.blockchanges
假设项目有以下修订
rev 1000
rev 1001
..
rev 1008
...
rev 1011
...
rev 1015
是否可以有任何非手动解决方案来包括从 1000
到 1015
的所有修订但排除 1008
和 1011
?来自 Subversion/Tortoise/Subclipse 的工具或命令是首选。
如果您使用的是 TortoiseSVN,则过程相对简单:
- 右键单击要将更改合并到的文件夹。
- TortoiseSVN > 合并...
- 合并类型默认应该select"Merge a range of revisions",所以 点击下一步。
- 指定 URL
- 在Revision range to merge框中,勾选特定范围,然后使用
1000-1007,1009-1010,1012-1015
- 然后单击下一步,然后单击合并。
这将有效地合并除 1008 和 1011 之外的所有更改。或者,如果您不介意在 1011 之后合并所有内容,则可以使用 1012-HEAD
。
一个选项是指定要合并的修订范围。但是,另一种方法是 "block" 合并您不想要的修订。您可以使用 --record-only 选项执行此操作。 Subclipse merge UI 为此有一个特定的 UI 选项:Manually record merge information (Block one or more revisions)。使用此选项,您可以通过向导并选择您不想合并的特定修订版(1008 和 1011)。完成后,它会将这些修订记录为已合并到合并信息中。所以现在您可以返回并合并该范围内的所有修订,SVN 将跳过这两个修订,因为它假定它们已经合并。
在 SVN Book 中描述了这个过程:http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge.advanced.blockchanges