[PATCH 2/2] Add 'stg uncommit' command
[stgit] / stgit / main.py
index 5fba58c..4a48668 100644 (file)
@@ -44,6 +44,7 @@ import stgit.commands.imprt
 import stgit.commands.init
 import stgit.commands.mail
 import stgit.commands.new
+import stgit.commands.patches
 import stgit.commands.pick
 import stgit.commands.pop
 import stgit.commands.pull
@@ -56,6 +57,7 @@ import stgit.commands.series
 import stgit.commands.status
 import stgit.commands.top
 import stgit.commands.unapplied
+import stgit.commands.uncommit
 
 
 #
@@ -78,6 +80,7 @@ commands = {
     'init':     stgit.commands.init,
     'mail':     stgit.commands.mail,
     'new':      stgit.commands.new,
+    'patches':  stgit.commands.patches,
     'pick':     stgit.commands.pick,
     'pop':      stgit.commands.pop,
     'pull':     stgit.commands.pull,
@@ -90,6 +93,7 @@ commands = {
     'status':   stgit.commands.status,
     'top':      stgit.commands.top,
     'unapplied':stgit.commands.unapplied,
+    'uncommit': stgit.commands.uncommit,
     }
 
 def print_help():
@@ -123,8 +127,12 @@ def main():
     cmd = sys.argv[1]
 
     if cmd in ['-h', '--help', 'help']:
-        print_help()
-        sys.exit(0)
+        if len(sys.argv) == 3 and sys.argv[2] in commands:
+            cmd = sys.argv[2]
+            sys.argv[2] = '--help';
+        else:
+            print_help()
+            sys.exit(0)
     if cmd in ['-v', '--version', 'version']:
         print 'Stacked GIT %s' % version
         os.system('git --version')
@@ -148,16 +156,14 @@ def main():
                           option_list = command.options)
     options, args = parser.parse_args()
     try:
-        # 'clone' doesn't expect an already initialised GIT tree
-        if cmd == 'clone':
-            stgit.commands.common.crt_series = stack.Series('master')
-        elif hasattr(options, 'branch') and options.branch:
-            stgit.commands.common.crt_series = stack.Series(options.branch)
-        else:
-            stgit.commands.common.crt_series = stack.Series()
-        # the line below is a simple way to avoid an exception when
-        # stgit is run outside an initialised tree
-        setattr(command, 'crt_series', stgit.commands.common.crt_series)
+        # 'clone' doesn't expect an already initialised GIT tree. A Series
+        # object will be created after the GIT tree is cloned
+        if cmd != 'clone':
+            if hasattr(options, 'branch') and options.branch:
+                command.crt_series = stack.Series(options.branch)
+            else:
+                command.crt_series = stack.Series()
+            stgit.commands.common.crt_series = command.crt_series
 
         command.func(parser, options, args)
     except (IOError, CmdException, stack.StackException, git.GitException), \