from optparse import OptionParser
import stgit.commands
-from stgit.stack import Series, StackException
-from stgit.git import GitException
-from stgit.commands.common import CmdException
-from stgit.gitmergeonefile import GitMergeException
#
# The commands map
'series': 'series',
'show': 'show',
'status': 'status',
+ 'sync': 'sync',
'top': 'top',
'unapplied': 'unapplied',
'uncommit': 'uncommit'
'pick',
'refresh',
'rename',
- 'show'
+ 'show',
+ 'sync'
)
wccommands = (
'add',
command = commands[cmd]
parser = OptionParser(usage = command.usage,
option_list = command.options)
- parser.print_help()
+ from pydoc import pager
+ pager(parser.format_help())
else:
print_help()
sys.exit(0)
usage = command.usage.split('\n')[0].strip()
parser = OptionParser(usage = usage, option_list = command.options)
options, args = parser.parse_args()
+
+ # These modules are only used from this point onwards and do not
+ # need to be imported earlier
+ from stgit.config import config_setup
+ from ConfigParser import ParsingError, NoSectionError
+ from stgit.stack import Series, StackException
+ from stgit.git import GitException
+ from stgit.commands.common import CmdException
+ from stgit.gitmergeonefile import GitMergeException
+
try:
+ config_setup()
+
# 'clone' doesn't expect an already initialised GIT tree. A Series
# object will be created after the GIT tree is cloned
if cmd != 'clone':
stgit.commands.common.crt_series = command.crt_series
command.func(parser, options, args)
- except (IOError, CmdException, StackException, GitException,
- GitMergeException), err:
+ except (IOError, ParsingError, NoSectionError, CmdException,
+ StackException, GitException, GitMergeException), err:
print >> sys.stderr, '%s %s: %s' % (prog, cmd, err)
sys.exit(2)
except KeyboardInterrupt: