[PATCH 5 of 7] patch: require text mode (-a) for binary patches in git mode (issue5510) (BC)

Augie Fackler raf at durin42.com
Tue Mar 21 17:29:13 EDT 2017


On Tue, Mar 21, 2017 at 10:08:38AM -0700, Alexander Fomin wrote:
> # HG changeset patch
> # User Alexander Fomin <afomin at fb.com>
> # Date 1490105843 25200
> #      Tue Mar 21 07:17:23 2017 -0700
> # Node ID 98301edf86daecef6ef43357b0934c351f58574d
> # Parent  b1eb6801f90a45ef43f17a22d9835ccba4ac190b
> patch: require text mode (-a) for binary patches in git mode (issue5510) (BC)
>
> This changeset makes patch explicitly request binary diffs generation by using
> -a/--text option even when in Git mode.

Can I request that the test in patch 6 be introduced as patch 5 with
the existing behavior, then this patch would show off the behavior
change as an edit to a test file?

My gut feeling is that this is a wontfix issue[0], but I'd like to see a
before/after case in order to make that determination.

0: Specifically, the -a option to diff in my mind means "treat all
files as text", which means that the bug in git-diff mode (if any) is
that it still vomits base85 crud to your terminal instead of trying to
treat the file as plain text.

>
> diff --git a/mercurial/patch.py b/mercurial/patch.py
> --- a/mercurial/patch.py
> +++ b/mercurial/patch.py
> @@ -2358,7 +2358,8 @@ def diffhunks(repo, node1=None, node2=No
>              # Buffer the whole output until we are sure it can be generated
>              return list(difffn(opts.copy(git=False), losedata))
>          except GitDiffRequired:
> -            return difffn(opts.copy(git=True), None)
> +            # Explicitly request binary diffs if Git mode is required
> +            return difffn(opts.copy(git=True, text=True), None)
>      else:
>          return difffn(opts, None)
>
> @@ -2552,7 +2553,7 @@ def trydiff(repo, revs, ctx1, ctx2, modi
>          elif revs and not repo.ui.quiet:
>              header.append(diffline(path1, revs))
>
> -        if binary and opts.git and not opts.nobinary:
> +        if binary and opts.git and opts.text and not opts.nobinary:
>              text = mdiff.b85diff(content1, content2)
>              if text:
>                  header.append('index %s..%s' %
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list