# HG changeset patch # User Thomas Arendsen Hein # Date 1140009736 -3600 # Node ID fde8fb2cbeded49d0021287fda8eab1de734d308 # Parent 681c5c211b92d78293e8faeb8c61c7f898a8334f Fix diff against an empty file (issue124) and add a test for this. diff -r 681c5c211b92 -r fde8fb2cbede mercurial/mdiff.py --- a/mercurial/mdiff.py Wed Feb 15 04:37:47 2006 +0100 +++ b/mercurial/mdiff.py Wed Feb 15 14:22:16 2006 +0100 @@ -18,16 +18,22 @@ if not text and (util.binary(a) or util.binary(b)): l = ['Binary file %s has changed\n' % fn] - elif a == None: + elif not a: b = b.splitlines(1) - l1 = "--- %s\t%s\n" % ("/dev/null", epoch) + if a is None: + l1 = "--- %s\t%s\n" % ("/dev/null", epoch) + else: + l1 = "--- %s\t%s\n" % ("a/" + fn, 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: + elif not b: a = a.splitlines(1) l1 = "--- %s\t%s\n" % ("a/" + fn, ad) - l2 = "+++ %s\t%s\n" % ("/dev/null", epoch) + if b is None: + l2 = "+++ %s\t%s\n" % ("/dev/null", epoch) + else: + l2 = "+++ %s\t%s\n" % ("b/" + fn, bd) l3 = "@@ -1,%d +0,0 @@\n" % len(a) l = [l1, l2, l3] + ["-" + e for e in a] else: diff -r 681c5c211b92 -r fde8fb2cbede tests/test-diffdir --- a/tests/test-diffdir Wed Feb 15 04:37:47 2006 +0100 +++ b/tests/test-diffdir Wed Feb 15 14:22:16 2006 +0100 @@ -12,3 +12,7 @@ hg diff -r tip | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" + +echo foo > a +hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ + -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" diff -r 681c5c211b92 -r fde8fb2cbede tests/test-diffdir.out --- a/tests/test-diffdir.out Wed Feb 15 04:37:47 2006 +0100 +++ b/tests/test-diffdir.out Wed Feb 15 14:22:16 2006 +0100 @@ -8,3 +8,13 @@ +++ b/b @@ -0,0 +1,1 @@ +123 +diff -r 3903775176ed a +--- a/a ++++ b/a +@@ -0,0 +1,1 @@ ++foo +diff -r 3903775176ed b +--- /dev/null ++++ b/b +@@ -0,0 +1,1 @@ ++123