eol: make output stable
authorBryan O'Sullivan <bos@serpentine.com>
Sun, 27 Dec 2015 23:55:54 +0900
changeset 27524 f5b6b4e574c1
parent 27523 68b9abf1cb82
child 27525 cba62f996780
eol: make output stable This eliminates a divergence in behaviour between PyPy and Python.
hgext/eol.py
tests/test-eol-hook.t
--- a/hgext/eol.py	Wed Dec 23 12:32:08 2015 -0800
+++ b/hgext/eol.py	Sun Dec 27 23:55:54 2015 +0900
@@ -201,7 +201,7 @@
                 data = ctx[f].data()
                 if (target == "to-lf" and "\r\n" in data
                     or target == "to-crlf" and singlelf.search(data)):
-                    failed.append((str(ctx), target, f))
+                    failed.append((f, target, str(ctx)))
                 break
         return failed
 
@@ -244,7 +244,7 @@
     if failed:
         eols = {'to-lf': 'CRLF', 'to-crlf': 'LF'}
         msgs = []
-        for node, target, f in failed:
+        for f, target, node in sorted(failed):
             msgs.append(_("  %s in %s should not have %s line endings") %
                         (f, node, eols[target]))
         raise error.Abort(_("end-of-line check failed:\n") + "\n".join(msgs))
--- a/tests/test-eol-hook.t	Wed Dec 23 12:32:08 2015 -0800
+++ b/tests/test-eol-hook.t	Sun Dec 27 23:55:54 2015 +0900
@@ -206,13 +206,13 @@
   adding file changes
   added 3 changesets with 3 changes to 2 files (+1 heads)
   error: pretxnchangegroup hook failed: end-of-line check failed:
+    b.txt in fbcf9b1025f5 should not have CRLF line endings
     d.txt in a7040e68714f should not have CRLF line endings
-    b.txt in fbcf9b1025f5 should not have CRLF line endings
   transaction abort!
   rollback completed
   abort: end-of-line check failed:
+    b.txt in fbcf9b1025f5 should not have CRLF line endings
     d.txt in a7040e68714f should not have CRLF line endings
-    b.txt in fbcf9b1025f5 should not have CRLF line endings
   [255]
 
   $ cd ..