summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9536f81)
This just passes the --binary option to git-diff-*, which causes the
generated diffs to contain an applyable diff even when binary files
differ. It's necessary to do this if you want to mail patches to
binary files.
Signed-off-by: Karl Hasselström <kha@treskal.com>
options = [make_option('-r', '--range',
metavar = 'rev1[..[rev2]]', dest = 'revs',
help = 'show the diff between revisions'),
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')]
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:
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)
if diff_str:
pager(diff_str)
help = 'Use FILE as a template'),
make_option('-b', '--branch',
help = 'use BRANCH instead of the default one'),
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')]
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(),
# write the diff
git.diff(rev1 = patch.get_bottom(),
rev2 = patch.get_top(),
+ out_fd = f, binary = options.binary)
if not options.stdout:
f.close()
patch_no += 1
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'),
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')]
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),
# 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
'diffstat': git.diffstat(rev1 = git_id('%s//bottom'%patch),
rev2 = git_id('%s//top' % patch)),
# for backward template compatibility
-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 = []
"""Show the diff between rev1 and rev2
"""
if not files:
files = []
+ args = []
+ if binary:
+ args.append('--binary')
+
- 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:
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)
- diff_str = _output(['git-diff-index', '-p', rev1, '--'] + files)
+ diff_str = _output(['git-diff-index', '-p']
+ + args + [rev1, '--'] + files)