"""
import sys, os
-from optparse import OptionParser, make_option
from pydoc import pager
-
+from stgit.argparse import opt
from stgit.commands.common import *
-from stgit import git
-
-
-help = 'show the commit corresponding to a patch (or the current patch)'
-usage = """%prog [options] [<patch1>] [<patch2>] [<patch3>..<patch4>]
+from stgit import argparse, git
-Show the commit log and the diff corresponding to the given
-patches. The output is similar to that generated by the 'git show'
-command."""
+help = 'Show the commit corresponding to a patch'
+kind = 'patch'
+usage = ['[options] [<patch1>] [<patch2>] [<patch3>..<patch4>]']
+description = """
+Show the commit log and the diff corresponding to the given patches.
+The output is similar to that generated by 'git show'."""
-directory = DirectoryHasRepository()
-options = [make_option('-b', '--branch',
- help = 'use BRANCH instead of the default one'),
- make_option('-a', '--applied',
- help = 'show the applied patches',
- action = 'store_true'),
- make_option('-u', '--unapplied',
- help = 'show the unapplied patches',
- action = 'store_true')
- ] + make_diff_opts_option()
+args = [argparse.patch_range(argparse.applied_patches,
+ argparse.unapplied_patches,
+ argparse.hidden_patches)]
+options = [
+ opt('-b', '--branch', args = [argparse.stg_branches],
+ short = 'Use BRANCH instead of the default branch'),
+ opt('-a', '--applied', action = 'store_true',
+ short = 'Show the applied patches'),
+ opt('-u', '--unapplied', action = 'store_true',
+ short = 'Show the unapplied patches'),
+ ] + argparse.diff_opts_option()
+directory = DirectoryHasRepository(log = False)
def func(parser, options, args):
"""Show commit log and diff
patches = crt_series.get_unapplied()
elif len(args) == 0:
patches = ['HEAD']
+ elif '..' in ' '.join(args):
+ # patch ranges
+ applied = crt_series.get_applied()
+ unapplied = crt_series.get_unapplied()
+ patches = parse_patches(args, applied + unapplied + \
+ crt_series.get_hidden(), len(applied))
else:
- if len(args) == 1 and args[0].find('..') == -1:
- # single patch or commit id
- patches = args
- else:
- applied = crt_series.get_applied()
- unapplied = crt_series.get_unapplied()
- patches = parse_patches(args, applied + unapplied + \
- crt_series.get_hidden(), len(applied))
+ # individual patches or commit ids
+ patches = args
commit_ids = [git_id(crt_series, patch) for patch in patches]
commit_str = '\n'.join([git.pretty_commit(commit_id,