Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial-如何推动未完成的分支?_Mercurial_Branch_Repository - Fatal编程技术网

Mercurial-如何推动未完成的分支?

Mercurial-如何推动未完成的分支?,mercurial,branch,repository,Mercurial,Branch,Repository,我们将一切都转化为来自CVS的Mercurial,迄今为止一切都很好。然而,我们今天遇到的一个问题是这种情况 在迁移到Mercurial之前,我之前有一些悬而未决的更改,这些功能已经启动,后来由于各种原因被推迟。很有可能,几个月后,其他人会完成这些功能,从我之前的地方开始 在克隆了新的Mercurial存储库之后,我创建了单独的分支来隔离这些特性 它给我留下了这样的东西(编造版本号) 在此期间,团队一直在工作并将其推送到我们的中央存储库,因此默认分支是rev40(tip) 现在,我的推-f工作正

我们将一切都转化为来自CVS的Mercurial,迄今为止一切都很好。然而,我们今天遇到的一个问题是这种情况

在迁移到Mercurial之前,我之前有一些悬而未决的更改,这些功能已经启动,后来由于各种原因被推迟。很有可能,几个月后,其他人会完成这些功能,从我之前的地方开始

在克隆了新的Mercurial存储库之后,我创建了单独的分支来隔离这些特性

它给我留下了这样的东西(编造版本号)

在此期间,团队一直在工作并将其推送到我们的中央存储库,因此默认分支是rev40(tip)

现在,我的推-f工作正常,但定位(提示)到我的最新更改->50:feature3(提示)。我希望这个技巧在中央存储库中保持默认状态,只要有我的分支就可以在那里让别人随时获取它们。当我使用hgwebdir时,这个图看起来也很有趣,所以我很确定这是错误的方法


我该怎么做?我应该先关分行吗?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)