From: "Karl Hasselström" <kha@treskal.com>
To: Catalin Marinas <catalin.marinas@gmail.com>
Cc: git@vger.kernel.org, Petr Baudis <pasky@suse.cz>
Subject: [StGIT PATCH 4/5] If any uncommit would fail, don't uncommit anything
Date: Fri, 11 May 2007 03:40:22 +0200 [thread overview]
Message-ID: <20070511014021.13161.60939.stgit@yoghurt> (raw)
In-Reply-To: <20070511013400.13161.9160.stgit@yoghurt>
From: Karl Hasselström <kha@treskal.com>
Signed-off-by: Karl Hasselström <kha@treskal.com>
---
stgit/commands/uncommit.py | 26 +++++++++++++++-----------
1 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/stgit/commands/uncommit.py b/stgit/commands/uncommit.py
index 04c7e52..f86af57 100644
--- a/stgit/commands/uncommit.py
+++ b/stgit/commands/uncommit.py
@@ -80,23 +80,26 @@ def func(parser, options, args):
print 'Uncommitting %d patches...' % patch_nr,
sys.stdout.flush()
- for n in xrange(0, patch_nr):
- # retrieve the commit (only commits with a single parent are allowed)
- commit_id = crt_series.get_base()
+ def get_commit(commit_id):
commit = git.Commit(commit_id)
try:
parent, = commit.get_parents()
except ValueError:
- raise CmdException, 'Commit %s does not have exactly one parent' \
- % commit_id
+ raise CmdException('Commit %s does not have exactly one parent'
+ % commit_id)
+ return (commit, commit_id, parent)
+
+ commits = []
+ next_commit = crt_series.get_base()
+ for i in xrange(patch_nr):
+ commit, commit_id, parent = get_commit(next_commit)
+ commits.append((commit, commit_id, parent))
+ next_commit = parent
+
+ for (commit, commit_id, parent), patchname in \
+ zip(commits, patchnames or (None for i in xrange(len(commits)))):
author_name, author_email, author_date = \
name_email_date(commit.get_author())
-
- if patchnames:
- patchname = patchnames[n]
- else:
- patchname = None
-
crt_series.new_patch(patchname,
can_edit = False, before_existing = True,
top = commit_id, bottom = parent,
@@ -105,4 +108,5 @@ def func(parser, options, args):
author_email = author_email,
author_date = author_date)
+
print 'done'
next prev parent reply other threads:[~2007-05-11 1:48 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-11 1:39 [StGIT PATCH 0/5] Some tweaks and enhancements Karl Hasselström
2007-05-11 1:40 ` [StGIT PATCH 1/5] Make the "name" argument to "stg new" optional Karl Hasselström
2007-05-11 1:40 ` [StGIT PATCH 2/5] Generate patch names of more uniform length Karl Hasselström
2007-05-11 1:40 ` [StGIT PATCH 3/5] Remove an unnecessary parameter to make_patch_name Karl Hasselström
2007-05-11 1:40 ` Karl Hasselström [this message]
2007-05-11 1:40 ` [StGIT PATCH 5/5] Uncommit to a named commit 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=20070511014021.13161.60939.stgit@yoghurt \
--to=kha@treskal.com \
--cc=catalin.marinas@gmail.com \
--cc=git@vger.kernel.org \
--cc=pasky@suse.cz \
/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).