options = [make_option('-r', '--range',
metavar = 'rev1[..[rev2]]', dest = 'revs',
help = 'show the diff between revisions'),
+ make_option('--binary',
+ help = 'output a diff even for binary files',
+ action = 'store_true'),
make_option('-s', '--stat',
help = 'show the stat instead of the diff',
action = 'store_true')]
if options.stat:
print git.diffstat(args, git_id(rev1), git_id(rev2))
else:
- diff_str = git.diff(args, git_id(rev1), git_id(rev2))
+ diff_str = git.diff(args, git_id(rev1), git_id(rev2),
+ binary = options.binary)
if diff_str:
pager(diff_str)
help = 'Use FILE as a template'),
make_option('-b', '--branch',
help = 'use BRANCH instead of the default one'),
+ make_option('--binary',
+ help = 'output a diff even for binary files',
+ action = 'store_true'),
make_option('-s', '--stdout',
help = 'dump the patches to the standard output',
action = 'store_true')]
# write the diff
git.diff(rev1 = patch.get_bottom(),
rev2 = patch.get_top(),
- out_fd = f)
+ out_fd = f, binary = options.binary)
if not options.stdout:
f.close()
patch_no += 1
help = 'username for SMTP authentication'),
make_option('-b', '--branch',
help = 'use BRANCH instead of the default one'),
+ make_option('--binary',
+ help = 'output a diff even for binary files',
+ action = 'store_true'),
make_option('-m', '--mbox',
help = 'generate an mbox file instead of sending',
action = 'store_true')]
# for backward template compatibility
'endofheaders': '',
'diff': git.diff(rev1 = git_id('%s//bottom' % patch),
- rev2 = git_id('%s//top' % patch)),
+ rev2 = git_id('%s//top' % patch),
+ binary = options.binary),
'diffstat': git.diffstat(rev1 = git_id('%s//bottom'%patch),
rev2 = git_id('%s//top' % patch)),
# for backward template compatibility
else:
print '%s' % fs[1]
-def diff(files = None, rev1 = 'HEAD', rev2 = None, out_fd = None):
+def diff(files = None, rev1 = 'HEAD', rev2 = None, out_fd = None,
+ binary = False):
"""Show the diff between rev1 and rev2
"""
if not files:
files = []
+ args = []
+ if binary:
+ args.append('--binary')
+
if rev1 and rev2:
- diff_str = _output(['git-diff-tree', '-p', rev1, rev2, '--'] + files)
+ diff_str = _output(['git-diff-tree', '-p'] + args
+ + [rev1, rev2, '--'] + files)
elif rev1 or rev2:
refresh_index()
if rev2:
- diff_str = _output(['git-diff-index', '-p', '-R', rev2, '--'] + files)
+ diff_str = _output(['git-diff-index', '-p', '-R']
+ + args + [rev2, '--'] + files)
else:
- diff_str = _output(['git-diff-index', '-p', rev1, '--'] + files)
+ diff_str = _output(['git-diff-index', '-p']
+ + args + [rev1, '--'] + files)
else:
diff_str = ''