From: Karl Hasselström Date: Wed, 12 Dec 2007 20:56:42 +0000 (+0100) Subject: Set exit code to 3 on merge conflict X-Git-Tag: v0.15-rc1~309 X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/commitdiff_plain/f9cc5e695144b69901e3b6130361934bc062d36e Set exit code to 3 on merge conflict Signed-off-by: Karl Hasselström --- diff --git a/stgit/commands/coalesce.py b/stgit/commands/coalesce.py index 2330231..d2cba3e 100644 --- a/stgit/commands/coalesce.py +++ b/stgit/commands/coalesce.py @@ -110,7 +110,7 @@ def _coalesce(stack, iw, name, msg, save_template, patches): return except transaction.TransactionHalted: pass - trans.run(iw) + return trans.run(iw) def func(parser, options, args): stack = directory.repository.current_stack @@ -118,5 +118,5 @@ def func(parser, options, args): + list(stack.patchorder.unapplied))) if len(patches) < 2: raise common.CmdException('Need at least two patches') - _coalesce(stack, stack.repository.default_iw(), - options.name, options.message, options.save_template, patches) + return _coalesce(stack, stack.repository.default_iw(), options.name, + options.message, options.save_template, patches) diff --git a/stgit/commands/goto.py b/stgit/commands/goto.py index d78929d..763a8af 100644 --- a/stgit/commands/goto.py +++ b/stgit/commands/goto.py @@ -48,4 +48,4 @@ def func(parser, options, args): pass else: raise common.CmdException('Patch "%s" does not exist' % patch) - trans.run(iw) + return trans.run(iw) diff --git a/stgit/lib/transaction.py b/stgit/lib/transaction.py index 663d393..0ca647e 100644 --- a/stgit/lib/transaction.py +++ b/stgit/lib/transaction.py @@ -1,4 +1,4 @@ -from stgit import exception +from stgit import exception, utils from stgit.out import * from stgit.lib import git @@ -111,6 +111,11 @@ class StackTransaction(object): self.__stack.patchorder.applied = self.__applied self.__stack.patchorder.unapplied = self.__unapplied + if self.__error: + return utils.STGIT_CONFLICT + else: + return utils.STGIT_SUCCESS + def __halt(self, msg): self.__error = msg raise TransactionHalted(msg) diff --git a/stgit/main.py b/stgit/main.py index 4281062..79044b0 100644 --- a/stgit/main.py +++ b/stgit/main.py @@ -275,7 +275,7 @@ def main(): else: command.crt_series = Series() - command.func(parser, options, args) + ret = command.func(parser, options, args) except (StgException, IOError, ParsingError, NoSectionError), err: out.error(str(err), title = '%s %s' % (prog, cmd)) if debug_level > 0: @@ -285,4 +285,4 @@ def main(): except KeyboardInterrupt: sys.exit(utils.STGIT_GENERAL_ERROR) - sys.exit(utils.STGIT_SUCCESS) + sys.exit(ret or utils.STGIT_SUCCESS) diff --git a/stgit/utils.py b/stgit/utils.py index 6568da5..2ff1d74 100644 --- a/stgit/utils.py +++ b/stgit/utils.py @@ -317,6 +317,7 @@ def make_message_options(): STGIT_SUCCESS = 0 # everything's OK STGIT_GENERAL_ERROR = 1 # seems to be non-command-specific error STGIT_COMMAND_ERROR = 2 # seems to be a command that failed +STGIT_CONFLICT = 3 # merge conflict, otherwise OK def strip_leading(prefix, s): """Strip leading prefix from a string. Blow up if the prefix isn't