[PATCH 1 of 2] update: check wc.dirty() before setting overwrite=True

Augie Fackler durin42 at gmail.com
Fri Jun 17 15:25:52 CDT 2011


# HG changeset patch
# User Augie Fackler <durin42 at gmail.com>
# Date 1308342062 18000
# Node ID fa18b3700dafa530544456e544c3d9b41749ec78
# Parent  ba3c36cea66e7a9cc0bb274b7f7b73ad65212df7
update: check wc.dirty() before setting overwrite=True

merge.update() was missing a few dirtiness checks from workingcontext,
including subrepo cleanliness checks. Using wc.dirty() instead of
one-off checks for various forms of dirtiness will be significantly
safer.

diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -525,7 +525,7 @@
         elif not overwrite:
             if pa == p1 or pa == p2: # linear
                 pass # all good
-            elif wc.files() or wc.deleted():
+            elif wc.dirty(missing=True):
                 raise util.Abort(_("crosses branches (merge branches or use"
                                    " --clean to discard changes)"))
             elif onode is None:


More information about the Mercurial-devel mailing list