diff -r 9c888b945b65 -r d587925680d9 mercurial/patch.py --- a/mercurial/patch.py Thu Nov 15 10:55:32 2012 -0800 +++ b/mercurial/patch.py Tue Nov 06 14:04:05 2012 -0800 @@ -10,7 +10,7 @@ import tempfile, zlib, shutil from i18n import _ -from node import hex, nullid, short +from node import hex, short import base85, mdiff, scmutil, util, diffhelpers, copies, encoding, error import context @@ -1514,44 +1514,6 @@ finally: fp.close() -def b85diff(to, tn): - '''print base85-encoded binary diff''' - def gitindex(text): - if not text: - return hex(nullid) - l = len(text) - s = util.sha1('blob %d\0' % l) - s.update(text) - return s.hexdigest() - - def fmtline(line): - l = len(line) - if l <= 26: - l = chr(ord('A') + l - 1) - else: - l = chr(l - 26 + ord('a') - 1) - return '%c%s\n' % (l, base85.b85encode(line, True)) - - def chunk(text, csize=52): - l = len(text) - i = 0 - while i < l: - yield text[i:i + csize] - i += csize - - tohash = gitindex(to) - tnhash = gitindex(tn) - if tohash == tnhash: - return "" - - # TODO: deltas - ret = ['index %s..%s\nGIT binary patch\nliteral %s\n' % - (tohash, tnhash, len(tn))] - for l in chunk(zlib.compress(tn)): - ret.append(fmtline(l)) - ret.append('\n') - return ''.join(ret) - class GitDiffRequired(Exception): pass @@ -1789,7 +1751,7 @@ if dodiff: if dodiff == 'binary': - text = b85diff(to, tn) + text = mdiff.b85diff(to, tn) else: text = mdiff.unidiff(to, date1, # ctx2 date may be dynamic