from optparse import OptionParser, make_option
from stgit.utils import *
-from stgit import stack, git
+from stgit import stack, git, gitmergeonefile
from stgit.version import version
from stgit.config import config
from stgit.commands.common import *
import stgit.commands.commit
import stgit.commands.export
import stgit.commands.files
+import stgit.commands.float
import stgit.commands.fold
+import stgit.commands.goto
import stgit.commands.id
import stgit.commands.imprt
import stgit.commands.init
+import stgit.commands.log
import stgit.commands.mail
import stgit.commands.new
import stgit.commands.patches
import stgit.commands.resolved
import stgit.commands.rm
import stgit.commands.series
+import stgit.commands.show
import stgit.commands.status
import stgit.commands.top
import stgit.commands.unapplied
'commit': stgit.commands.commit,
'export': stgit.commands.export,
'files': stgit.commands.files,
+ 'float': stgit.commands.float,
'fold': stgit.commands.fold,
+ 'goto': stgit.commands.goto,
'id': stgit.commands.id,
'import': stgit.commands.imprt,
'init': stgit.commands.init,
+ 'log': stgit.commands.log,
'mail': stgit.commands.mail,
'new': stgit.commands.new,
'patches': stgit.commands.patches,
'resolved': stgit.commands.resolved,
'rm': stgit.commands.rm,
'series': stgit.commands.series,
+ 'show': stgit.commands.show,
'status': stgit.commands.status,
'top': stgit.commands.top,
'unapplied':stgit.commands.unapplied,
'uncommit': stgit.commands.uncommit,
}
+# classification: repository, stack, patch, working copy
+repocommands = (
+ 'branch',
+ 'clone',
+ 'id',
+ 'pull'
+ )
+stackcommands = (
+ 'applied',
+ 'clean',
+ 'commit',
+ 'float',
+ 'goto',
+ 'init',
+ 'pop',
+ 'push',
+ 'series',
+ 'top',
+ 'unapplied',
+ 'uncommit'
+ )
+patchcommands = (
+ 'delete',
+ 'export',
+ 'files',
+ 'fold',
+ 'import',
+ 'log',
+ 'mail',
+ 'new',
+ 'pick',
+ 'refresh',
+ 'rename',
+ 'show'
+ )
+wccommands = (
+ 'add',
+ 'diff',
+ 'patches',
+ 'resolved',
+ 'rm',
+ 'status'
+ )
+
+def _print_helpstring(cmd):
+ print ' ' + cmd + ' ' * (12 - len(cmd)) + commands[cmd].help
+
def print_help():
print 'usage: %s <command> [options]' % os.path.basename(sys.argv[0])
print
- print 'commands:'
+ print 'Generic commands:'
print ' help print the detailed command usage'
print ' version display version information'
print ' copyright display copyright information'
- print
-
+ # unclassified commands if any
cmds = commands.keys()
cmds.sort()
for cmd in cmds:
- print ' ' + cmd + ' ' * (12 - len(cmd)) + commands[cmd].help
+ if not cmd in repocommands and not cmd in stackcommands \
+ and not cmd in patchcommands and not cmd in wccommands:
+ _print_helpstring(cmd)
+ print
+
+ print 'Repository commands:'
+ for cmd in repocommands:
+ _print_helpstring(cmd)
+ print
+
+ print 'Stack commands:'
+ for cmd in stackcommands:
+ _print_helpstring(cmd)
+ print
+
+ print 'Patch commands:'
+ for cmd in patchcommands:
+ _print_helpstring(cmd)
+ print
+
+ print 'Working-copy commands:'
+ for cmd in wccommands:
+ _print_helpstring(cmd)
#
# The main function (command dispatcher)
stgit.commands.common.crt_series = command.crt_series
command.func(parser, options, args)
- except (IOError, CmdException, stack.StackException, git.GitException), \
- err:
+ except (IOError, CmdException, stack.StackException, git.GitException,
+ gitmergeonefile.GitMergeException), err:
print >> sys.stderr, '%s %s: %s' % (prog, cmd, err)
sys.exit(2)
except KeyboardInterrupt: