如何在分支的尖端保留标签?

时间:2013-05-08 21:26:31

标签: mercurial

假设我有一个变更集我标记为“稳定”。现在我更新为“稳定”,然后开始编写我的新功能,一路上提交。它尚未准备好,所以我不想在此时将其合并回稳定版,但我需要在另一个分支上修复一个紧急错误。

我更新到分支,修复错误并提交我的更改。现在我想回到我离开的地方,我该怎么做?

我可以“标记”我的功能分支,以便我可以再次找到它,但AFAIK标记在我提交时不会沿着我的分支浮动,所以它总是会有一些修改。这对于“稳定”是,因为我不希望该标记移动,但对我的功能分支不好。

我该如何处理?

我突然意识到我可以hg up <tag>然后第二次跑hg up,这会把我带到分支的尖端,不是吗?连续两次运行hg up似乎有点尴尬,但如果这是Mercurial做事的方式,那就这样吧。

2 个答案:

答案 0 :(得分:2)

在Mercurial中,书签一个标记,无论何时提交都会向前移动。这听起来就像你想要的那样:

(df)ry4an-mba:~ ry4an$ hg init smooth_reggae
(df)ry4an-mba:~ ry4an$ cd smooth_reggae/
(df)ry4an-mba:smooth_reggae ry4an$ echo this > AFILE
(df)ry4an-mba:smooth_reggae ry4an$ hg commit -Am first
adding AFILE
(df)ry4an-mba:smooth_reggae ry4an$ hg bookmark stable
(df)ry4an-mba:smooth_reggae ry4an$ hg checkout stable
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(df)ry4an-mba:smooth_reggae ry4an$ hg summary
parent: 0:fdb32de55e6b tip
 first
branch: default
bookmarks: *stable
commit: (clean)
update: (current)
(df)ry4an-mba:smooth_reggae ry4an$ echo more >> AFILE
(df)ry4an-mba:smooth_reggae ry4an$ hg commit -Am second
(df)ry4an-mba:smooth_reggae ry4an$ hg summary
parent: 1:38cdabce7149 tip
 second
branch: default
bookmarks: *stable
commit: (clean)
update: (current)
(df)ry4an-mba:smooth_reggae ry4an$ hg log -g
changeset:   1:38cdabce7149
bookmark:    stable
tag:         tip
user:        Ry4an Brase <ry4an-hg@ry4an.org>
date:        Wed May 08 20:02:05 2013 -0400
summary:     second

changeset:   0:fdb32de55e6b
user:        Ry4an Brase <ry4an-hg@ry4an.org>
date:        Wed May 08 20:01:31 2013 -0400
summary:     first

答案 1 :(得分:1)

您是否使用未命名的分支作为功能分支?如果没有,您的分支机构肯定有一个名称,您可以在hg up <branch_name>中使用该名称来获取其提示。