diff mercurial/mdiff.py @ 264:4c1d7072d5cd

Attempt to make diff deal with null sources properly -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Attempt to make diff deal with null sources properly manifest hash: 7766ed2b885640157b93474b6e42573ec061fcfb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCpJsdywK+sNU5EO8RAr5gAJ9sIik+3FDyI8UvIvrWlku4QgMZWQCcDFvh MvtqY8pFYTFLp7tM2zzTlu4= =a0oy -----END PGP SIGNATURE-----
author mpm@selenic.com
date Mon, 06 Jun 2005 10:51:09 -0800
parents 619e775aa7f9
children 467cea2bf2d8
line wrap: on
line diff
--- a/mercurial/mdiff.py	Sun Jun 05 10:50:03 2005 -0800
+++ b/mercurial/mdiff.py	Mon Jun 06 10:51:09 2005 -0800
@@ -10,9 +10,23 @@
 
 def unidiff(a, ad, b, bd, fn):
     if not a and not b: return ""
-    a = a.splitlines(1)
-    b = b.splitlines(1)
-    l = list(difflib.unified_diff(a, b, "a/" + fn, "b/" + fn, ad, bd))
+
+    if a == None:
+        b = b.splitlines(1)
+        l1 = "--- %s\t%s\n" % ("/dev/null", ad)
+        l2 = "+++ %s\t%s\n" % ("b/" + fn, bd)
+        l3 = "@@ -0,0 +1,%d @@\n" % len(b)
+        l = [l1, l2, l3] + ["+" + e for e in b]
+    elif b == None:
+        a = a.splitlines(1)
+        l1 = "--- %s\t%s\n" % ("a/" + fn, ad)
+        l2 = "+++ %s\t%s\n" % ("/dev/null", bd)
+        l3 = "@@ -1,%d +0,0 @@\n" % len(a)
+        l = [l1, l2, l3] + ["-" + e for e in a]
+    else:
+        a = a.splitlines(1)
+        b = b.splitlines(1)
+        l = list(difflib.unified_diff(a, b, "a/" + fn, "b/" + fn, ad, bd))
 
     for ln in xrange(len(l)):
         if l[ln][-1] != '\n':