comparison mercurial/mdiff.py @ 3023:d838bfac668d

Remove dates from git export file lines - they confuse git-apply
author Brendan Cully <brendan@kublai.com>
date Tue, 29 Aug 2006 17:08:42 -0700
parents 8b02af865990
children 096f1c73cdc3
comparison
equal deleted inserted replaced
3018:b9dbbcf8a488 3023:d838bfac668d
48 setattr(self, k, v) 48 setattr(self, k, v)
49 49
50 defaultopts = diffopts() 50 defaultopts = diffopts()
51 51
52 def unidiff(a, ad, b, bd, fn, r=None, opts=defaultopts): 52 def unidiff(a, ad, b, bd, fn, r=None, opts=defaultopts):
53 def datetag(date):
54 return opts.git and '\n' or '\t%s\n' % date
55
53 if not a and not b: return "" 56 if not a and not b: return ""
54 epoch = util.datestr((0, 0)) 57 epoch = util.datestr((0, 0))
55 58
56 if not opts.text and (util.binary(a) or util.binary(b)): 59 if not opts.text and (util.binary(a) or util.binary(b)):
57 l = ['Binary file %s has changed\n' % fn] 60 l = ['Binary file %s has changed\n' % fn]
58 elif not a: 61 elif not a:
59 b = splitnewlines(b) 62 b = splitnewlines(b)
60 if a is None: 63 if a is None:
61 l1 = "--- %s\t%s\n" % ("/dev/null", epoch) 64 l1 = '--- /dev/null%s' % datetag(epoch)
62 else: 65 else:
63 l1 = "--- %s\t%s\n" % ("a/" + fn, ad) 66 l1 = "--- %s%s" % ("a/" + fn, datetag(ad))
64 l2 = "+++ %s\t%s\n" % ("b/" + fn, bd) 67 l2 = "+++ %s%s" % ("b/" + fn, datetag(bd))
65 l3 = "@@ -0,0 +1,%d @@\n" % len(b) 68 l3 = "@@ -0,0 +1,%d @@\n" % len(b)
66 l = [l1, l2, l3] + ["+" + e for e in b] 69 l = [l1, l2, l3] + ["+" + e for e in b]
67 elif not b: 70 elif not b:
68 a = splitnewlines(a) 71 a = splitnewlines(a)
69 l1 = "--- %s\t%s\n" % ("a/" + fn, ad) 72 l1 = "--- %s%s" % ("a/" + fn, datetag(ad))
70 if b is None: 73 if b is None:
71 l2 = "+++ %s\t%s\n" % ("/dev/null", epoch) 74 l2 = '+++ /dev/null%s' % datetag(epoch)
72 else: 75 else:
73 l2 = "+++ %s\t%s\n" % ("b/" + fn, bd) 76 l2 = "+++ %s%s" % ("b/" + fn, datetag(bd))
74 l3 = "@@ -1,%d +0,0 @@\n" % len(a) 77 l3 = "@@ -1,%d +0,0 @@\n" % len(a)
75 l = [l1, l2, l3] + ["-" + e for e in a] 78 l = [l1, l2, l3] + ["-" + e for e in a]
76 else: 79 else:
77 al = splitnewlines(a) 80 al = splitnewlines(a)
78 bl = splitnewlines(b) 81 bl = splitnewlines(b)
79 l = list(bunidiff(a, b, al, bl, "a/" + fn, "b/" + fn, opts=opts)) 82 l = list(bunidiff(a, b, al, bl, "a/" + fn, "b/" + fn, opts=opts))
80 if not l: return "" 83 if not l: return ""
81 # difflib uses a space, rather than a tab 84 # difflib uses a space, rather than a tab
82 l[0] = "%s\t%s\n" % (l[0][:-2], ad) 85 l[0] = "%s%s" % (l[0][:-2], datetag(ad))
83 l[1] = "%s\t%s\n" % (l[1][:-2], bd) 86 l[1] = "%s%s" % (l[1][:-2], datetag(bd))
84 87
85 for ln in xrange(len(l)): 88 for ln in xrange(len(l)):
86 if l[ln][-1] != '\n': 89 if l[ln][-1] != '\n':
87 l[ln] += "\n\ No newline at end of file\n" 90 l[ln] += "\n\ No newline at end of file\n"
88 91