[PATCH 2 of 2] bookmarks: on a bare merge use config to choose target or choose @
Stephen Lee
sphen.lee at gmail.com
Tue Mar 11 06:20:11 CDT 2014
# HG changeset patch
# User Stephen Lee <sphen.lee at gmail.com>
# Date 1394536638 -39600
# Tue Mar 11 22:17:18 2014 +1100
# Node ID 44db1ede5c65a0265203f5df063049813d2da8c8
# Parent ff0ffb9855d8e88fbcce967867f2a373eaac581f
bookmarks: on a bare merge use config to choose target or choose @
When running "hg merge" if there is an active and current bookmark
look in config for a key "bookmarks.<name>.track" and it will name
the bookmark we should merge with. If the key is missing, and an
@ bookmark exists, merge with it instead.
This is only performed after checking for divergent bookmarks which
are given preference when merging.
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -4248,9 +4248,11 @@
"please merge with an explicit rev or bookmark"),
hint=_("run 'hg heads' to see all heads"))
elif len(bmheads) <= 1:
- raise util.Abort(_("no matching bookmark to merge - "
- "please merge with an explicit rev or bookmark"),
- hint=_("run 'hg heads' to see all heads"))
+ node = bookmarks.trackingbookmark(repo)
+ if node is None:
+ raise util.Abort(_("no matching bookmark to merge - "
+ "please merge with an explicit rev or bookmark"),
+ hint=_("run 'hg heads' to see all heads"))
if not node and not repo._bookmarkcurrent:
branch = repo[None].branch()
diff --git a/tests/test-bookmarks-merge.t b/tests/test-bookmarks-merge.t
--- a/tests/test-bookmarks-merge.t
+++ b/tests/test-bookmarks-merge.t
@@ -177,3 +177,53 @@
g 8:04dd21731d95
$ hg id
26bee9c5bcf3 @/c
+
+# test bookmark tracking for merge
+
+ $ hg book -d @
+ $ hg up -q g
+ $ hg --config bookmarks.g.track=e merge
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg parents
+ changeset: 8:04dd21731d95
+ bookmark: g
+ tag: tip
+ parent: 6:be381d1126a0
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: g
+
+ changeset: 7:ca784329f0ba
+ bookmark: e
+ parent: 5:26bee9c5bcf3
+ parent: 4:a0546fcfe0fb
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: merge
+
+
+# test bookmarks implicitly tracking @ for merge
+
+ $ hg up -C -q g
+ $ hg book -r5 @
+ $ hg merge
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg parents
+ changeset: 8:04dd21731d95
+ bookmark: g
+ tag: tip
+ parent: 6:be381d1126a0
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: g
+
+ changeset: 5:26bee9c5bcf3
+ bookmark: @
+ bookmark: c
+ parent: 3:b8f96cf4688b
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: e
+
More information about the Mercurial-devel
mailing list