如何在mercurial功能分支(工作流程)中进行最新更改?

时间:2013-11-15 19:41:49

标签: mercurial

给定一个名为'main'的分支。作为一个想要开发新功能的开发人员,我创建了'f1'并做了几次提交,定期推送到我们的中央仓库。在处理该功能时,我需要在我的分支中获得“main”的更改。

我知道我可以hg merge main获取'f1'中的更改。但是当我后来整合到'main'时,历史将充满对该临时分支的引用。有没有办法让我的分支机构在事后不那么明显?

2 个答案:

答案 0 :(得分:1)

要使分支在历史记录中不太可见,您应该使用bookmarks。让我们看一下这两种情况,使用命名分支或书签。

来自'main'的名为'f1'的新分支:

$ hg update main
$ hg branch f1
...
$ hg glog --template "{rev} {branch} {bookmarks} {desc}\n"

@  5 main  Hacking main.
|
| o  4 f1  Hacking f1.
| |
| o  3 f1  Hacking f1.
|/
o  2 main  Hacking main.
|
o  1 main  Hacking main.
|
o  0 default

使用来自'main'的名为'f1'的新书签:

$ hg update main
$ hg bookmark f1
...
$ hg glog --template "{rev} {branch} {bookmarks} {desc}\n"

@  5 main  Hacking main.
|
| o  4 main f1 Hacking f1.
| |
| o  3 main  Hacking f1.
|/
o  2 main  Hacking main.
|
o  1 main  Hacking main.
|
o  0 default

在书签案例中,可以使用hg bookmarks --delete f1从历史记录中移除“f1”功能(默认情况下,Mercurial 2.3新书签被提取WhatsNew)并且“主”分支中有两条路径

答案 1 :(得分:0)

首先,如果f1分支已经在中央回购中,为什么你担心主分支在将后者合并到前者后会包含f1分支的历史? f1分支在被推入中央仓库后不再是临时的/一次性的/不可见的,对于可以访问中央仓库的每个人来说,非常是可见的。

你的问题的答案是:除非f1是一个克隆分支,否则没办法。使用书签和/或匿名分支的所有建议都是错误的。