On 4/4/17 11:21 PM, Alexander Fomin wrote:
# HG changeset patch
# User Alexander Fomin <afo...@fb.com>
# Date 1490992236 25200
#      Fri Mar 31 13:30:36 2017 -0700
# Node ID 9be2b4ec19e846d2a95fe801ebe76f83fffd1ea9
# Parent  65969cd351b73228642d1e491e8c78b20d85405a
patch: make diff in Git mode respect --text option (issue5510)

This changeset makes patch respect -a/--text option in --git mode by aligning
its behaviour with Git itself.

diff --git a/mercurial/patch.py b/mercurial/patch.py
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -2552,7 +2552,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 not opts.nobinary and not opts.text:
              text = mdiff.b85diff(content1, content2)
              if text:
                  header.append('index %s..%s' %
diff --git a/tests/test-diff-binary-file.t b/tests/test-diff-binary-file.t
--- a/tests/test-diff-binary-file.t
+++ b/tests/test-diff-binary-file.t
@@ -73,5 +73,38 @@
    literal 5
    Mc$_OqttjCF00uV!&;S4c
+ $ cd ..

This should have a comment (any unindented text is a comment) explaining what the test is doing. Something simple like "Test text mode with git-style diff"
+
+  $ hg init b
+  $ cd b
+  $ cat > writebin.py <<EOF
+  > import sys
+  > path = sys.argv[1]
+  > open(path, 'wb').write('\x00\x01\x02\x03')
+  > EOF

Why not use printf here?

+  $ python writebin.py binfile.bin
+  $ hg add binfile.bin
+  $ hg ci -m 'add binfile.bin'
+
+  $ echo >> binfile.bin
+  $ hg ci -m 'change binfile.bin'
+
+  $ hg diff --git -a -r 0 -r 1
+  diff --git a/binfile.bin b/binfile.bin
+  --- a/binfile.bin
+  +++ b/binfile.bin
+  @@ -1,1 +1,1 @@
+  -\x00\x01\x02\x03 (esc)
+  \ No newline at end of file
+  +\x00\x01\x02\x03 (esc)
+
+  $ HGPLAIN=1 hg diff --git -a -r 0 -r 1
+  diff --git a/binfile.bin b/binfile.bin
+  --- a/binfile.bin
+  +++ b/binfile.bin
+  @@ -1,1 +1,1 @@
+  -\x00\x01\x02\x03 (esc)
+  \ No newline at end of file
+  +\x00\x01\x02\x03 (esc)
$ cd ..


Nice! The code changes look good, just the test I'd like a response on.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to