From: David Kågedal Date: Fri, 14 Sep 2007 22:32:00 +0000 (+0200) Subject: Refactor Series.new_patch X-Git-Tag: v0.14~71 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/stgit/commitdiff_plain/e7800bdc7bc1e9e5a040c6e1d583a95566eb4f38 Refactor Series.new_patch This shuffles some code so that the top and bottom never need to be set to anything other than a valid commit and its parent. Signed-off-by: David Kågedal Signed-off-by: Karl Hasselström --- diff --git a/stgit/stack.py b/stgit/stack.py index 5e9d4fb..746e59b 100644 --- a/stgit/stack.py +++ b/stgit/stack.py @@ -874,13 +874,6 @@ class Series(PatchSet): patch = self.get_patch(name) patch.create() - if not bottom: - bottom = head - if not top: - top = head - - patch.set_bottom(bottom) - patch.set_top(top) patch.set_description(descr) patch.set_authname(author_name) patch.set_authemail(author_email) @@ -899,10 +892,15 @@ class Series(PatchSet): set_head = True if commit: + if top: + top_commit = git.get_commit(top) + else: + bottom = head + top_commit = git.get_commit(head) + # create a commit for the patch (may be empty if top == bottom); # only commit on top of the current branch assert(unapplied or bottom == head) - top_commit = git.get_commit(top) commit_id = git.commit(message = descr, parents = [bottom], cache_update = False, tree_id = top_commit.get_tree(), @@ -913,9 +911,12 @@ class Series(PatchSet): committer_name = committer_name, committer_email = committer_email) # set the patch top to the new commit + patch.set_bottom(bottom) patch.set_top(commit_id) else: assert top != bottom + patch.set_bottom(bottom) + patch.set_top(top) self.log_patch(patch, 'new')