[PATCH 03 of 10 V2] merge: remove uses of manifest.matches

Martin von Zweigbergk martinvonz at google.com
Wed Mar 8 12:47:23 EST 2017


On Tue, Mar 7, 2017 at 7:22 PM, Durham Goode <durham at fb.com> wrote:
> # HG changeset patch
> # User Durham Goode <durham at fb.com>
> # Date 1488940700 28800
> #      Tue Mar 07 18:38:20 2017 -0800
> # Node ID ccec5eeceb85929c5df041b768d01694176b3a9d
> # Parent  f70310209acbbcb4cf7cae7c38d94e15c09c1ace
> merge: remove uses of manifest.matches
>
> This gets rid of the manifest.matches calls in merge.py in favor of the new api.
> This is part of getting rid of manifest.matches since it is O(manifest).
>
> diff --git a/mercurial/merge.py b/mercurial/merge.py
> --- a/mercurial/merge.py
> +++ b/mercurial/merge.py
> @@ -27,6 +27,7 @@ from . import (
>      copies,
>      error,
>      filemerge,
> +    match as matchmod,
>      obsolete,
>      pycompat,
>      scmutil,
> @@ -818,11 +819,10 @@ def manifestmerge(repo, wctx, p2, pa, br
>          if any(wctx.sub(s).dirty() for s in wctx.substate):
>              m1['.hgsubstate'] = modifiednodeid
>
> -    # Compare manifests
> -    if matcher is not None:
> -        m1 = m1.matches(matcher)
> -        m2 = m2.matches(matcher)
> -    diff = m1.diff(m2)
> +    diff = m1.diff(m2, match=matcher)
> +
> +    if matcher is None:
> +        matcher = matchmod.always('', '')

There's a condition further up that does almost the opposite, but I
can clean that up in a followup.


More information about the Mercurial-devel mailing list