Update .git/refs/heads/base after patch deletion
[stgit] / stgit / main.py
index b84d91d..6d86ee4 100644 (file)
@@ -125,8 +125,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')
@@ -150,16 +154,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), \