##// END OF EJS Templates
git patches: handle renames of binary files
Alexis S. L. Carvalho -
r4092:4ced663b default
parent child Browse files
Show More
@@ -412,6 +412,8 b' def b85diff(fp, to, tn):'
412 yield text[i:i+csize]
412 yield text[i:i+csize]
413 i += csize
413 i += csize
414
414
415 if to == tn:
416 return
415 # TODO: deltas
417 # TODO: deltas
416 l = len(tn)
418 l = len(tn)
417 fp.write('index %s..%s\nGIT binary patch\nliteral %s\n' %
419 fp.write('index %s..%s\nGIT binary patch\nliteral %s\n' %
@@ -593,8 +595,8 b' def diff(repo, node1=None, node2=None, f'
593 to = getfile(a).read(arev)
595 to = getfile(a).read(arev)
594 else:
596 else:
595 header.append('new file mode %s\n' % mode)
597 header.append('new file mode %s\n' % mode)
596 if util.binary(tn):
598 if util.binary(tn):
597 dodiff = 'binary'
599 dodiff = 'binary'
598 elif f in removed:
600 elif f in removed:
599 if f in srcs:
601 if f in srcs:
600 dodiff = False
602 dodiff = False
@@ -61,6 +61,11 b' hg import -mfoo b.diff'
61 cmp binfile.bin $TESTDIR/binfile.bin
61 cmp binfile.bin $TESTDIR/binfile.bin
62
62
63 echo
63 echo
64 echo '% rename binary file'
65 hg mv binfile.bin renamed.bin
66 hg diff --git
67
68 echo
64 echo '% diff across many revisions'
69 echo '% diff across many revisions'
65 hg mv dst dst2
70 hg mv dst dst2
66 hg ci -m 'mv dst dst2' -d '0 0'
71 hg ci -m 'mv dst dst2' -d '0 0'
@@ -66,6 +66,11 b' fQItJW-{SoTm)8|5##k|m00000NkvXXu0mjf{mKw'
66 % import binary diff
66 % import binary diff
67 applying b.diff
67 applying b.diff
68
68
69 % rename binary file
70 diff --git a/binfile.bin b/renamed.bin
71 rename from binfile.bin
72 rename to renamed.bin
73
69 % diff across many revisions
74 % diff across many revisions
70 diff --git a/dst2 b/dst3
75 diff --git a/dst2 b/dst3
71 rename from dst2
76 rename from dst2
General Comments 0
You need to be logged in to leave comments. Login now