[PATCH] make commit fail when committing unresolved files

S. Heimberg simohe at besonet.ch
Wed Aug 6 15:10:00 CDT 2008


The changes in mercurial/localrepo.py can be simplified from
+            for f in changes[0]:
+                if f in ms and ms[f] == 'u':
+                    raise util.Abort(_("unresolved merge conflicts "
+                                                  "(see hg resolve)"))
to
+            for f in ms:
+                if ms[f] == 'u':
+                    raise util.Abort(_("unresolved merge conflicts "
+                                                  "(see hg resolve)"))
I have tested it and it works.

About the test suite I know next to nothing. But your test
"test-commit-unresolved" fails on my computer because rebase is not
available. Why do you enable this extension?

Greetings
simohe

On Thirsday, 2008-07-31 at 22:37 +0200, Stefano Tortarolo wrote:
> # HG changeset patch
> # User Stefano Tortarolo <stefano.tortarolo at gmail.com>
> # Date 1217536632 -7200
> # Node ID acb7091e4eea7a7dbd863d489233b03d6aaa4c9d
> # Parent  8dc510c4caee437631e47ec9be891279abeffc33
> make commit fail when committing unresolved files
>
> diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
> --- a/mercurial/localrepo.py
> +++ b/mercurial/localrepo.py
> @@ -12,6 +12,7 @@
>  import lock, transaction, stat, errno, ui, store
>  import os, revlog, time, util, extensions, hook, inspect
>  import match as match_
> +import merge as merge_
>
>  class localrepository(repo.repository):
>      capabilities = util.set(('lookup', 'changegroupsubset'))
> @@ -766,6 +767,11 @@
>                  update_dirstate = (self.dirstate.parents()[0] == p1)
>                  changes = [files, [], [], [], []]
>
> +            ms = merge_.mergestate(self)
> +            for f in changes[0]:
> +                if f in ms and ms[f] == 'u':
> +                    raise util.Abort(_("unresolved merge conflicts "
> +                                                    "(see hg resolve)"))
>              wctx = context.workingctx(self, (p1, p2), text, user, date,
>                                        extra, changes)
>              return self._commitctx(wctx, force, force_editor, empty_ok,
> diff --git a/tests/test-add b/tests/test-add
> --- a/tests/test-add
> +++ b/tests/test-add
> @@ -32,6 +32,7 @@
>  echo % should fail
>  hg add a
>  hg st
> +hg resolve -m a
>  hg ci -m merge
>
>  echo % issue683
> diff --git a/tests/test-commit-unresolved b/tests/test-commit-unresolved
> new file mode 100755
> --- /dev/null
> +++ b/tests/test-commit-unresolved
> @@ -0,0 +1,41 @@
> +#!/bin/sh
> +
> +echo "[extensions]" >> $HGRCPATH
> +echo "graphlog=" >> $HGRCPATH
> +echo "rebase=" >> $HGRCPATH
> +
> +function addcommit {...



More information about the Mercurial-devel mailing list