[PATCH] reset mergestate after commit

Martin Geisler mg at daimi.au.dk
Thu Dec 25 03:43:24 CST 2008


# HG changeset patch
# User Martin Geisler <mg at daimi.au.dk>
# Date 1230198121 -3600
# Node ID 77561b12dc6d4e969575876bebb4ba5bcda47678
# Parent  73268e317ad3d422850b85925253cd186fe6303c
reset mergestate after commit

diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -633,6 +633,9 @@
     elif ui.verbose:
         ui.write(_('committed changeset %d:%s\n') % (rev,short(node)))
 
+    ms = merge_.mergestate(repo)
+    ms.reset(node)
+
 def copy(ui, repo, *pats, **opts):
     """mark files as copied for the next commit
 
diff --git a/tests/test-resolve b/tests/test-resolve
new file mode 100755
--- /dev/null
+++ b/tests/test-resolve
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# test that a commit clears the merge state.
+
+hg init repo
+cd repo
+
+echo foo > file
+hg commit -Am 'add file' -d '0 0'
+
+echo bar >> file
+hg commit -Am 'append bar' -d '0 0'
+
+echo % create a second head
+hg up -C 0
+echo baz >> file
+hg commit -Am 'append baz' -d '0 0'
+
+echo % failing merge
+HGMERGE=internal:fail hg merge
+
+echo resolved > file
+hg resolve -m file
+hg commit -m 'resolved' -d '0 0'
+
+echo % resolve -l, should be empty
+hg resolve -l
diff --git a/tests/test-resolve.out b/tests/test-resolve.out
new file mode 100644
--- /dev/null
+++ b/tests/test-resolve.out
@@ -0,0 +1,8 @@
+adding file
+% create a second head
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+created new head
+% failing merge
+0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+use 'hg resolve' to retry unresolved file merges
+% resolve -l, should be empty


More information about the Mercurial-devel mailing list