[PATCH 1 of 3] diff: use fctx.isbinary() to test binary

Yuya Nishihara yuya at tcha.org
Thu May 4 22:21:37 EDT 2017


On Thu, 4 May 2017 00:00:13 -0700, Jun Wu wrote:
> # HG changeset patch
> # User Jun Wu <quark at fb.com>
> # Date 1493875014 25200
> #      Wed May 03 22:16:54 2017 -0700
> # Node ID f28cc5c61b7f45e961590ba45f6cbac576d83ef6
> # Parent  2cfdf5241096f6c0c2d45d32b2f1a41575835025
> # Available At https://bitbucket.org/quark-zju/hg-draft
> #              hg pull https://bitbucket.org/quark-zju/hg-draft -r f28cc5c61b7f
> diff: use fctx.isbinary() to test binary

This series looks good except for the complex 'if' condition in the last patch.

> --- a/mercurial/patch.py
> +++ b/mercurial/patch.py
> @@ -2524,17 +2524,21 @@ def trydiff(repo, revs, ctx1, ctx2, modi
>          content1 = None
>          content2 = None
> +        fctx1 = None
> +        fctx2 = None
>          flag1 = None
>          flag2 = None
>          if f1:
> -            content1 = getfilectx(f1, ctx1).data()
> +            fctx1 = getfilectx(f1, ctx1)
> +            content1 = fctx1.data()
>              if opts.git or losedatafn:
>                  flag1 = ctx1.flags(f1)
>          if f2:
> -            content2 = getfilectx(f2, ctx2).data()
> +            fctx2 = getfilectx(f2, ctx2)
> +            content2 = fctx2.data()
>              if opts.git or losedatafn:
>                  flag2 = ctx2.flags(f2)
>          binary = False
>          if opts.git or losedatafn:
> -            binary = util.binary(content1) or util.binary(content2)
> +            binary = any(f.isbinary() for f in [fctx1, fctx2] if f)

bool(f) may be False if f is a null filectx, but that shouldn't matter here.


More information about the Mercurial-devel mailing list