From: "Karl Hasselström" <kha@treskal.com>
To: Catalin Marinas <catalin.marinas@gmail.com>
Cc: git@vger.kernel.org, "David Kågedal" <davidk@lysator.liu.se>
Subject: [StGit PATCH 3/5] Set exit code to 3 on merge conflict
Date: Fri, 14 Dec 2007 07:32:24 +0100 [thread overview]
Message-ID: <20071214063224.29290.45251.stgit@yoghurt> (raw)
In-Reply-To: <20071214062618.29290.70792.stgit@yoghurt>
Signed-off-by: Karl Hasselström <kha@treskal.com>
---
stgit/commands/coalesce.py | 6 +++---
stgit/commands/goto.py | 2 +-
stgit/lib/transaction.py | 7 ++++++-
stgit/main.py | 4 ++--
stgit/utils.py | 1 +
5 files changed, 13 insertions(+), 7 deletions(-)
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 a95eeb9..2577693 100644
--- a/stgit/main.py
+++ b/stgit/main.py
@@ -273,7 +273,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:
@@ -283,4 +283,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
next prev parent reply other threads:[~2007-12-14 6:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-14 6:32 [StGit PATCH 0/5] More experimental patches Karl Hasselström
2007-12-14 6:32 ` [StGit PATCH 1/5] Expose transaction abort function Karl Hasselström
2007-12-14 6:32 ` [StGit PATCH 2/5] stg coalesce: Support --file and --save-template Karl Hasselström
2007-12-14 6:32 ` Karl Hasselström [this message]
2007-12-14 6:32 ` [StGit PATCH 4/5] Convert "stg commit" to new infrastructure Karl Hasselström
2007-12-14 6:32 ` [StGit PATCH 5/5] Make "stg commit" fancier Karl Hasselström
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071214063224.29290.45251.stgit@yoghurt \
--to=kha@treskal.com \
--cc=catalin.marinas@gmail.com \
--cc=davidk@lysator.liu.se \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).