changeset 17940:c84ef0047a94

diff: unify calls to diffline diffline was called from trydiff for binary diffs and from unidiff for text diffs. In this patch we unify those calls into one. diffline is also a header, not part of diff mechanisms, so it makes sense to remove that responsibility from the mdiff module. In upcoming patches we will move diffline to patch module and keep grouping responsibilities.
author Guillermo Pérez <bisho@fb.com>
date Thu, 15 Nov 2012 12:16:08 -0800
parents d587925680d9
children 9a6e4d5d7ea8
files mercurial/mdiff.py mercurial/patch.py
diffstat 2 files changed, 4 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/mdiff.py	Tue Nov 06 14:04:05 2012 -0800
+++ b/mercurial/mdiff.py	Thu Nov 15 12:16:08 2012 -0800
@@ -156,7 +156,7 @@
         parts.append(a)
     return ' '.join(parts) + '\n'
 
-def unidiff(a, ad, b, bd, fn1, fn2, r=None, opts=defaultopts):
+def unidiff(a, ad, b, bd, fn1, fn2, opts=defaultopts):
     def datetag(date, fn=None):
         if not opts.git and not opts.nodates:
             return '\t%s\n' % date
@@ -207,9 +207,6 @@
         if l[ln][-1] != '\n':
             l[ln] += "\n\ No newline at end of file\n"
 
-    if r:
-        l.insert(0, diffline(r, fn1, fn2, opts))
-
     return "".join(l)
 
 # creates a headerless unified diff
--- a/mercurial/patch.py	Tue Nov 06 14:04:05 2012 -0800
+++ b/mercurial/patch.py	Thu Nov 15 12:16:08 2012 -0800
@@ -1746,17 +1746,17 @@
                         dodiff = 'binary'
                 elif binary or nflag != oflag:
                     losedatafn(f)
-            if opts.git:
-                header.insert(0, mdiff.diffline(revs, join(a), join(b), opts))
 
         if dodiff:
+            if opts.git or revs:
+                header.insert(0, mdiff.diffline(revs, join(a), join(b), opts))
             if dodiff == 'binary':
                 text = mdiff.b85diff(to, tn)
             else:
                 text = mdiff.unidiff(to, date1,
                                     # ctx2 date may be dynamic
                                     tn, util.datestr(ctx2.date()),
-                                    join(a), join(b), revs, opts=opts)
+                                    join(a), join(b), opts=opts)
             if header and (text or len(header) > 1):
                 yield ''.join(header)
             if text: