diff: unify calls to diffline
authorGuillermo Pérez <bisho@fb.com>
Thu, 15 Nov 2012 12:16:08 -0800
changeset 17940 c84ef0047a94
parent 17939 d587925680d9
child 17941 9a6e4d5d7ea8
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.
mercurial/mdiff.py
mercurial/patch.py
--- 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: