Mercurial svn的汞当量';s合并--仅记录?

Mercurial svn的汞当量';s合并--仅记录?,mercurial,pull,svn-merge,Mercurial,Pull,Svn Merge,我们最近将我们的代码库从subversion迁移到mercurial,并将在本周末从mercurial代码库发布到生产 我们有一个三重回购设置,我们称之为dev、stable和release,其中dev是stable的克隆,stable是release的克隆。目前,dev有我们的版本7代码,stable有我们的版本6代码。我们刚刚发布了版本6的代码。我们的下一个版本6.1定于下周发布 问题是,由于我们在v6版本中也进行了重大升级,我们希望在6.1版本之前发布多次(6.0.1、6.0.2等)。展望

我们最近将我们的代码库从subversion迁移到mercurial,并将在本周末从mercurial代码库发布到生产

我们有一个三重回购设置,我们称之为dev、stable和release,其中dev是stable的克隆,stable是release的克隆。目前,dev有我们的版本7代码,stable有我们的版本6代码。我们刚刚发布了版本6的代码。我们的下一个版本6.1定于下周发布

问题是,由于我们在v6版本中也进行了重大升级,我们希望在6.1版本之前发布多次(6.0.1、6.0.2等)。展望未来,这不会是一个问题,因为所有三个回购协议都有不同的版本号,但现在稳定版和发行版都是v6

如果我将stable上的pom中的版本号更改为6.1,那么这一更改将不得不退回到dev,这将意味着在构建任何这些人工制品之前将其修复(以避免用真正的v7人工制品污染v6.1版本)

有没有一种方法可以告诉mercurial在不接受更改的情况下将此更改拉入到dev中,类似于svn的merge-record-only所做的?是将更改拉到dev然后执行回退的唯一选项吗


谢谢

我不能说我遵循了您的版本管理逻辑;不同的版本号与您拉取或合并的更改有什么关系?但是如果我理解正确,您希望修改
stable
分支中的显式版本号(例如,修改为6.1),然后继续推动对
dev
的更改,但防止
dev
的版本号变为6.1

下面是您的操作方法:确保版本号位于其自己的变更集中——您不希望它与您希望应用的变更共享一个变更集。现在合并此变更集,告诉mercurial在合并期间始终使用文件的“本地”版本,方法是使用特殊的“合并工具”:

正如hg帮助合并工具所述:

A merge tool combines two different versions of a file into a merged file.  
...  
"internal:local"  
    Uses the local version of files as the merged version.
有关详细信息,请参阅完整帮助

合并修订版
REV
还将合并
REV
所依赖的任何变更集。因此,如有必要,应首先在
REV
之前合并修订版(以正常方式)。这可以通过以下方式实现自动化:

hg merge -r 'parents(REV)'

当我说这在将来不会是一个问题时,我的意思是我们可以在代码库中不更改版本号的情况下发布这些点版本,因为代码库中的版本号是不同的,所以我们需要答案。正如我所说,这不是我们通常管理版本号或发行版的方式,这是一次性的,因为要过渡到mercurial,并且在这个发行版中发生了巨大的升级。
hg merge -r 'parents(REV)'