Mercurial-如何推动未完成的分支?
我们将一切都转化为来自CVS的Mercurial,迄今为止一切都很好。然而,我们今天遇到的一个问题是这种情况 在迁移到Mercurial之前,我之前有一些悬而未决的更改,这些功能已经启动,后来由于各种原因被推迟。很有可能,几个月后,其他人会完成这些功能,从我之前的地方开始 在克隆了新的Mercurial存储库之后,我创建了单独的分支来隔离这些特性 它给我留下了这样的东西(编造版本号) 在此期间,团队一直在工作并将其推送到我们的中央存储库,因此默认分支是rev40(tip) 现在,我的推-f工作正常,但定位(提示)到我的最新更改->50:feature3(提示)。我希望这个技巧在中央存储库中保持默认状态,只要有我的分支就可以在那里让别人随时获取它们。当我使用hgwebdir时,这个图看起来也很有趣,所以我很确定这是错误的方法Mercurial-如何推动未完成的分支?,mercurial,branch,repository,Mercurial,Branch,Repository,我们将一切都转化为来自CVS的Mercurial,迄今为止一切都很好。然而,我们今天遇到的一个问题是这种情况 在迁移到Mercurial之前,我之前有一些悬而未决的更改,这些功能已经启动,后来由于各种原因被推迟。很有可能,几个月后,其他人会完成这些功能,从我之前的地方开始 在克隆了新的Mercurial存储库之后,我创建了单独的分支来隔离这些特性 它给我留下了这样的东西(编造版本号) 在此期间,团队一直在工作并将其推送到我们的中央存储库,因此默认分支是rev40(tip) 现在,我的推-f工作正
我该怎么做?我应该先关分行吗?tip实际上是重要的还是仅仅是元数据。
tip
始终是添加到存储库中的最新更改集。从hg帮助版本
保留名称“tip”是一个特殊标记,它始终标识最新版本
只要默认分支的头是您所期望的,您就可以了。无需关闭分支(但如果您的Mercurial版本足够新,能够支持它,则最好使用
hg push--new branch
) tip
只是一个自动应用的标签,指的是(我认为)最近的提交。没什么大不了的;它只是为了方便。tip标签是纯元数据,总是指向修订号最高的变更集——没有比这更合理的逻辑了
但是,tip
现在指向功能分支上的变更集这一事实不会给您带来任何麻烦。当人们进行克隆时,他们将自动更新到默认分支上的最尖端的变更集。所以他们可以在克隆后立即开始工作。此外,已经拥有克隆的用户在运行hg update
时将留在其命名分支上。此处hg update
将带您进入该命名分支上最尖端的变更集,例如,如果您从该分支开始,则在default
上
人们可能认为hg update tip
与hg update
相同,但这只是在没有命名分支的情况下。对于命名分支,给出一个明确的修订名,如tip
可以更改命名分支的设置——普通的hg更新
不能
hg update default
hg branch feature1
hg commit -m "Description of what I was doing in feature1"
hg update default
hg branch feature2
hg commit -m "Description of what I was doing feature2" (my tip is now here)
hg update default
hg push -f (to force the creation of my new branches, w/o affecting default, I haven't merged them)