Merge branch 'stable'
[stgit] / stgit / commands / show.py
index c12793f..895943a 100644 (file)
@@ -22,13 +22,17 @@ from stgit.commands.common import *
 from stgit import argparse, git
 
 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'."""
 
+args = [argparse.patch_range(argparse.applied_patches,
+                             argparse.unapplied_patches,
+                             argparse.hidden_patches)]
 options = [
-    opt('-b', '--branch',
+    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'),
@@ -36,7 +40,7 @@ options = [
         short = 'Show the unapplied patches'),
     ] + argparse.diff_opts_option()
 
-directory = DirectoryHasRepository()
+directory = DirectoryHasRepository(log = False)
 
 def func(parser, options, args):
     """Show commit log and diff
@@ -47,15 +51,15 @@ def func(parser, options, args):
         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,