D5514: test: change test's diff generation to use mdiff for nicer output

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
16 messages Options
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
sangeet259 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  The current diff being used by tests upon failing is not very good. Sometimes there is a lot of redundancy.
 
  To see for yourself, follow these steps:
 
  1. Download this bundle : http://bit.ly/2DuJjsS
 
    $ hg clone https://www.mercurial-scm.org/hg
    $ cd hg/
    $ hg unbundle af8efb83e1d6.hg
    $ hg up a1e70c1dbec0^
    $ hg revert --all --rev a1e70c1dbec0
    $ hg revert -i tests/test-bookmarks-pushpull.t # revert only the last three hunks (press 'n' for the first 8, and 'y' for the last three)
    $ cd tests
    $ hg diff --rev a1e70c1dbec0 # nice output from Mercurial
    $ ./run-test.py test-bookmarks-pushpull.t # poor output from the test runner
 
  If you couldn't follow those steps, you can simply check the diffs here:
 
  - test's diff: https://pastebin.com/Z4LRg4vx
  - diff used by hg diff: https://pastebin.com/qanQEsiA
 
  Tests uses _unified_diff based on difflib.py . The output isn't great!
 
  Mercurial's diff uses mdiff which gives better diffs.
  This patch uses mdiff's unidiff function to generate the diff for the failed tests.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

AFFECTED FILES
  mercurial/mdiff.py
  tests/run-tests.py

CHANGE DETAILS

diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -48,8 +48,10 @@
 import argparse
 import collections
 import difflib
+import datetime
 import distutils.version as version
 import errno
+import itertools
 import json
 import multiprocessing
 import os
@@ -67,6 +69,7 @@
 import unittest
 import uuid
 import xml.dom.minidom as minidom
+from mercurial import mdiff, patch
 
 try:
     import Queue as queue
@@ -603,10 +606,16 @@
     import functools
     _unified_diff = functools.partial(difflib.diff_bytes, difflib.unified_diff)
 
+try:
+    _diff = mdiff.new_diff
+except Exception:
+    print("Falling back to unified_diff")
+    _diff = _unified_diff
+
 def getdiff(expected, output, ref, err):
     servefail = False
     lines = []
-    for line in _unified_diff(expected, output, ref, err):
+    for line in _diff(expected, output, ref, err):
         if line.startswith(b'+++') or line.startswith(b'---'):
             line = line.replace(b'\\', b'/')
             if line.endswith(b' \n'):
diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py
--- a/mercurial/mdiff.py
+++ b/mercurial/mdiff.py
@@ -7,6 +7,8 @@
 
 from __future__ import absolute_import
 
+import datetime
+import itertools
 import re
 import struct
 import zlib
@@ -525,3 +527,33 @@
 
 def replacediffheader(oldlen, newlen):
     return struct.pack(">lll", 0, oldlen, newlen)
+
+def prepare_mdiff(expected, output):
+    """Prepare the inputs for the mdiff.unidiff function"""
+    date1 = datetime.datetime.now().strftime("%a %b %d %y %H:%M:%S %Y %z")
+    date2 = date1
+    # join all the different elements into a single string
+    # to regenerate that file
+    exp = "".join(expected)
+    out = "".join(output)
+    opts = diffopts(noprefix=True)
+    return exp, date1, out, date2, opts
+
+def process_mdiff(uheaders, hunks):
+    """Process the output of mdiff into a list of lines,
+    to be used by getdiff"""
+    # the hunklines are in the hunks generator
+    # get the hunklines from the (hunkrange,hunklines) tuple
+    hunklines = [x[1] for x in hunks]
+    # extract and insert the headers at the beginnng of the hunklines list
+    headers = [uheaders[0].split("\t")[0]+"\n", uheaders[1].split("\t")[0]+"\n"]
+    hunklines.insert(0, headers)
+    difflines = itertools.chain.from_iterable(hunklines)
+    return difflines
+
+def new_diff(expected, output, ref, err):
+    exp, date1, out, date2, opts = prepare_mdiff(expected, output)
+    uheaders, hunks = unidiff(exp, date1, out, date2,
+                            ref, err, binary=False, opts=opts)
+    difflines = process_mdiff(uheaders, hunks)
+    return difflines



To: sangeet259, #hg-reviewers
Cc: mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
sangeet259 updated this revision to Diff 13051.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5514?vs=13050&id=13051

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

AFFECTED FILES
  mercurial/mdiff.py
  tests/run-tests.py

CHANGE DETAILS

diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -47,9 +47,11 @@
 
 import argparse
 import collections
+import datetime
 import difflib
 import distutils.version as version
 import errno
+import itertools
 import json
 import multiprocessing
 import os
@@ -67,6 +69,7 @@
 import unittest
 import uuid
 import xml.dom.minidom as minidom
+from mercurial import mdiff, patch
 
 try:
     import Queue as queue
@@ -603,10 +606,16 @@
     import functools
     _unified_diff = functools.partial(difflib.diff_bytes, difflib.unified_diff)
 
+try:
+    _diff = mdiff.new_diff
+except Exception:
+    print("Falling back to unified_diff")
+    _diff = _unified_diff
+
 def getdiff(expected, output, ref, err):
     servefail = False
     lines = []
-    for line in _unified_diff(expected, output, ref, err):
+    for line in _diff(expected, output, ref, err):
         if line.startswith(b'+++') or line.startswith(b'---'):
             line = line.replace(b'\\', b'/')
             if line.endswith(b' \n'):
diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py
--- a/mercurial/mdiff.py
+++ b/mercurial/mdiff.py
@@ -7,6 +7,8 @@
 
 from __future__ import absolute_import
 
+import datetime
+import itertools
 import re
 import struct
 import zlib
@@ -525,3 +527,33 @@
 
 def replacediffheader(oldlen, newlen):
     return struct.pack(">lll", 0, oldlen, newlen)
+
+def prepare_mdiff(expected, output):
+    """Prepare the inputs for the mdiff.unidiff function"""
+    date1 = datetime.datetime.now().strftime("%a %b %d %y %H:%M:%S %Y %z")
+    date2 = date1
+    # join all the different elements into a single string
+    # to regenerate that file
+    exp = "".join(expected)
+    out = "".join(output)
+    opts = diffopts(noprefix=True)
+    return exp, date1, out, date2, opts
+
+def process_mdiff(uheaders, hunks):
+    """Process the output of mdiff into a list of lines,
+    to be used by getdiff"""
+    # the hunklines are in the hunks generator
+    # get the hunklines from the (hunkrange,hunklines) tuple
+    hunklines = [x[1] for x in hunks]
+    # extract and insert the headers at the beginnng of the hunklines list
+    headers = [uheaders[0].split("\t")[0]+"\n", uheaders[1].split("\t")[0]+"\n"]
+    hunklines.insert(0, headers)
+    difflines = itertools.chain.from_iterable(hunklines)
+    return difflines
+
+def new_diff(expected, output, ref, err):
+    exp, date1, out, date2, opts = prepare_mdiff(expected, output)
+    uheaders, hunks = unidiff(exp, date1, out, date2,
+                            ref, err, binary=False, opts=opts)
+    difflines = process_mdiff(uheaders, hunks)
+    return difflines



To: sangeet259, #hg-reviewers
Cc: mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
sangeet259 added a comment.


  Note: To see this in action, one needs to add the changes from this `mdiff.py` to the mdiff.py of their installed mercurial.
  This is because unless you do that, you cannot import `mdiff.new_patch` as that function won't be there in your installed version, and hence it will keep falling back to the `unified_diff`.
 
  Else, can it be implemented in any other way.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers
Cc: mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
durin42 requested changes to this revision.
durin42 added inline comments.
This revision now requires changes to proceed.

INLINE COMMENTS

> run-tests.py:72
>  import xml.dom.minidom as minidom
> +from mercurial import mdiff, patch
>  

This will fail if Mercurial isn't already globally installed on the machine, as would be the case in at least some packaging circumstances when building from a source tarball.

Probably need a try/except, and _maybe_ a sanity check that mdiff's API matches what we expect?

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
pulkit added a comment.


  > If you couldn't follow those steps, you can simply check the diffs here:
  >
  > test's diff: https://pastebin.com/Z4LRg4vx
  >  diff used by hg diff: https://pastebin.com/qanQEsiA
 
  Can you make the diffs a part of commit message since pastebin's pastes can be removed in future?

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
sangeet259 added a comment.


  @durin42 So the `try/except` will fall back to `unified diff`?
  Is there a way we can enforce this on system's that don't have mercurial installed globally and not have to fall back on the earlier practice.
 
  Also, I didn't get your comment on checking the API of `mdiff` :/

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
durin42 added a comment.


  In https://phab.mercurial-scm.org/D5514#81800, @sangeet259 wrote:
 
  > @durin42 So the `try/except` will fall back to `unified diff`?
 
 
  Correct.
 
  > Is there a way we can enforce this on system's that don't have mercurial installed globally and not have to fall back on the earlier practice.
 
  I think we don't have any choice: if hg isn't installed, we have to fall back to the old codepath, since we won't know if mdiff is present.
 
  > Also, I didn't get your comment on checking the API of `mdiff` :/
 
  Well, what if we iterate on the API of mdiff.new_diff? then again, if the point of it is to have the same API as difflib.unified_diff, probably don't need to worry (and so we only have to fall back to difflib if mdiff isn't available or is too old).

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
sangeet259 updated this revision to Diff 13123.
sangeet259 edited the summary of this revision.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5514?vs=13051&id=13123

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

AFFECTED FILES
  mercurial/mdiff.py
  tests/run-tests.py

CHANGE DETAILS

diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -47,9 +47,11 @@
 
 import argparse
 import collections
+import datetime
 import difflib
 import distutils.version as version
 import errno
+import itertools
 import json
 import multiprocessing
 import os
@@ -68,6 +70,18 @@
 import uuid
 import xml.dom.minidom as minidom
 
+_unified_diff = difflib.unified_diff
+if PYTHON3:
+    import functools
+    _unified_diff = functools.partial(difflib.diff_bytes, difflib.unified_diff)
+
+try:
+    from mercurial import mdiff, patch
+    _diff = mdiff.new_diff
+except Exception:
+    print("Falling back to unified_diff")
+    _diff = _unified_diff
+
 try:
     import Queue as queue
 except ImportError:
@@ -598,15 +612,10 @@
             except OSError:
                 pass
 
-_unified_diff = difflib.unified_diff
-if PYTHON3:
-    import functools
-    _unified_diff = functools.partial(difflib.diff_bytes, difflib.unified_diff)
-
 def getdiff(expected, output, ref, err):
     servefail = False
     lines = []
-    for line in _unified_diff(expected, output, ref, err):
+    for line in _diff(expected, output, ref, err):
         if line.startswith(b'+++') or line.startswith(b'---'):
             line = line.replace(b'\\', b'/')
             if line.endswith(b' \n'):
diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py
--- a/mercurial/mdiff.py
+++ b/mercurial/mdiff.py
@@ -7,6 +7,8 @@
 
 from __future__ import absolute_import
 
+import datetime
+import itertools
 import re
 import struct
 import zlib
@@ -525,3 +527,33 @@
 
 def replacediffheader(oldlen, newlen):
     return struct.pack(">lll", 0, oldlen, newlen)
+
+def prepare_mdiff(expected, output):
+    """Prepare the inputs for the mdiff.unidiff function"""
+    date1 = datetime.datetime.now().strftime("%a %b %d %y %H:%M:%S %Y %z")
+    date2 = date1
+    # join all the different elements into a single string
+    # to regenerate that file
+    exp = "".join(expected)
+    out = "".join(output)
+    opts = diffopts(noprefix=True)
+    return exp, date1, out, date2, opts
+
+def process_mdiff(uheaders, hunks):
+    """Process the output of mdiff into a list of lines,
+    to be used by getdiff"""
+    # the hunklines are in the hunks generator
+    # get the hunklines from the (hunkrange,hunklines) tuple
+    hunklines = [x[1] for x in hunks]
+    # extract and insert the headers at the beginnng of the hunklines list
+    headers = [uheaders[0].split("\t")[0]+"\n", uheaders[1].split("\t")[0]+"\n"]
+    hunklines.insert(0, headers)
+    difflines = itertools.chain.from_iterable(hunklines)
+    return difflines
+
+def new_diff(expected, output, ref, err):
+    exp, date1, out, date2, opts = prepare_mdiff(expected, output)
+    uheaders, hunks = unidiff(exp, date1, out, date2,
+                            ref, err, binary=False, opts=opts)
+    difflines = process_mdiff(uheaders, hunks)
+    return difflines



To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
durin42 added inline comments.

INLINE COMMENTS

> mdiff.py:554
> +
> +def new_diff(expected, output, ref, err):
> +    exp, date1, out, date2, opts = prepare_mdiff(expected, output)

At least add a docstring taht explains this is designed to be a similar API to `difflib.unified_diff`?

> run-tests.py:50
>  import collections
> +import datetime
>  import difflib

unused?

> run-tests.py:54
>  import errno
> +import itertools
>  import json

unused?

> run-tests.py:81
> +    _diff = mdiff.new_diff
> +except Exception:
> +    print("Falling back to unified_diff")

Nit: `except (ImportError, AttributeError):` instead of just catching `Exception`.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
sangeet259 updated this revision to Diff 13998.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5514?vs=13123&id=13998

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

AFFECTED FILES
  mercurial/mdiff.py
  tests/run-tests.py

CHANGE DETAILS

diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -47,6 +47,7 @@
 
 import argparse
 import collections
+import datetime
 import difflib
 import distutils.version as version
 import errno
@@ -68,6 +69,18 @@
 import uuid
 import xml.dom.minidom as minidom
 
+_unified_diff = difflib.unified_diff
+if PYTHON3:
+    import functools
+    _unified_diff = functools.partial(difflib.diff_bytes, difflib.unified_diff)
+
+try:
+    from mercurial import mdiff, patch
+    _diff = mdiff.new_diff
+except except (ImportError, AttributeError):
+    print("Falling back to unified_diff")
+    _diff = _unified_diff
+
 try:
     import Queue as queue
 except ImportError:
@@ -598,15 +611,10 @@
             except OSError:
                 pass
 
-_unified_diff = difflib.unified_diff
-if PYTHON3:
-    import functools
-    _unified_diff = functools.partial(difflib.diff_bytes, difflib.unified_diff)
-
 def getdiff(expected, output, ref, err):
     servefail = False
     lines = []
-    for line in _unified_diff(expected, output, ref, err):
+    for line in _diff(expected, output, ref, err):
         if line.startswith(b'+++') or line.startswith(b'---'):
             line = line.replace(b'\\', b'/')
             if line.endswith(b' \n'):
diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py
--- a/mercurial/mdiff.py
+++ b/mercurial/mdiff.py
@@ -7,6 +7,8 @@
 
 from __future__ import absolute_import
 
+import datetime
+import itertools
 import re
 import struct
 import zlib
@@ -525,3 +527,37 @@
 
 def replacediffheader(oldlen, newlen):
     return struct.pack(">lll", 0, oldlen, newlen)
+
+def prepare_mdiff(expected, output):
+    """Prepare the inputs for the mdiff.unidiff function"""
+    date1 = datetime.datetime.now().strftime("%a %b %d %y %H:%M:%S %Y %z")
+    date2 = date1
+    # join all the different elements into a single string
+    # to regenerate that file
+    exp = "".join(expected)
+    out = "".join(output)
+    opts = diffopts(noprefix=True)
+    return exp, date1, out, date2, opts
+
+def process_mdiff(uheaders, hunks):
+    """Process the output of mdiff into a list of lines,
+    to be used by getdiff"""
+    # the hunklines are in the hunks generator
+    # get the hunklines from the (hunkrange,hunklines) tuple
+    hunklines = [x[1] for x in hunks]
+    # extract and insert the headers at the beginnng of the hunklines list
+    headers = [uheaders[0].split("\t")[0]+"\n", uheaders[1].split("\t")[0]+"\n"]
+    hunklines.insert(0, headers)
+    difflines = itertools.chain.from_iterable(hunklines)
+    return difflines
+
+def new_diff(expected, output, ref, err):
+    """
+    The API of new_diff is designed to be same as difflib.unified_diff.
+    This is done for backwards compatibility and resuing existing code.
+    """
+    exp, date1, out, date2, opts = prepare_mdiff(expected, output)
+    uheaders, hunks = unidiff(exp, date1, out, date2,
+                            ref, err, binary=False, opts=opts)
+    difflines = process_mdiff(uheaders, hunks)
+    return difflines



To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
sangeet259 added a comment.


  ping @durin42

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
sangeet259 added a comment.


  Hey @durin42 , take a look at the changes when you get time.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
durin42 added a comment.


  I've done some cleanups (dropped an unused import, copyedited the commit message a bit) and should push this soon. Thanks!

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
durin42 added a comment.


  Even with my in-flight fixes, I can't get this to use the non-unified_diff codepath. Can you test again?
 
  https://bitbucket.org/snippets/durin42/nejj94 has my in-flight fixes, but you may find it challenging to apply (the test output in the commit message confuses the patch parser). Hopefully that helps...

INLINE COMMENTS

> run-tests.py:80
> +    _diff = mdiff.new_diff
> +except except (ImportError, AttributeError):
> +    print("Falling back to unified_diff")

In the future please *run tests* before requesting another round of review: this is a trivial syntax error and proves you didn't try running tests.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: D5514: test: change test's diff generation to use mdiff for nicer output

Sangeet Kumar Mishra
Apologies, I didn't run the tests after the latest addition. 😔

On Tue, Feb 19, 2019, 20:39 durin42 (Augie Fackler) <[hidden email] wrote:
durin42 added a comment.


  Even with my in-flight fixes, I can't get this to use the non-unified_diff codepath. Can you test again?

  https://bitbucket.org/snippets/durin42/nejj94 has my in-flight fixes, but you may find it challenging to apply (the test output in the commit message confuses the patch parser). Hopefully that helps...

INLINE COMMENTS

> run-tests.py:80
> +    _diff = mdiff.new_diff
> +except except (ImportError, AttributeError):
> +    print("Falling back to unified_diff")

In the future please *run tests* before requesting another round of review: this is a trivial syntax error and proves you didn't try running tests.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

D5514: test: change test's diff generation to use mdiff for nicer output

pulkit (Pulkit Goyal)
In reply to this post by pulkit (Pulkit Goyal)
durin42 requested changes to this revision.
durin42 added a comment.
This revision now requires changes to proceed.


  (moving this off the dashboard until it gets updated)

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5514

To: sangeet259, #hg-reviewers, durin42
Cc: pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel