X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/0f92637c75d03080d43a9b8a95527660d61d67a5..6dd8fafabb5b8e266a85f13c8851ca8a66a1a405:/stgit/commands/diff.py diff --git a/stgit/commands/diff.py b/stgit/commands/diff.py index d3e1190..f3b0ea2 100644 --- a/stgit/commands/diff.py +++ b/stgit/commands/diff.py @@ -22,6 +22,7 @@ from pydoc import pager from stgit.commands.common import * from stgit.utils import * +from stgit.out import * from stgit import stack, git @@ -41,12 +42,12 @@ rev = '([patch][//[bottom | top]]) | | base' If neither bottom nor top are given but a '//' is present, the command shows the specified patch (defaulting to the current one).""" +directory = DirectoryHasRepository() 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('-O', '--diff-opts', + help = 'options to pass to git-diff'), make_option('-s', '--stat', help = 'show the stat instead of the diff', action = 'store_true')] @@ -79,10 +80,15 @@ def func(parser, options, args): rev1 = 'HEAD' rev2 = None + if options.diff_opts: + diff_flags = options.diff_opts.split() + else: + diff_flags = [] + if options.stat: - print git.diffstat(args, git_id(rev1), git_id(rev2)) + out.stdout_raw(git.diffstat(args, git_id(rev1), git_id(rev2)) + '\n') else: diff_str = git.diff(args, git_id(rev1), git_id(rev2), - binary = options.binary) + diff_flags = diff_flags ) if diff_str: pager(diff_str)