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 <davidk@xxxxxxxxxxxxxx> --- stgit/stack.py | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/stgit/stack.py b/stgit/stack.py index 733a241..fdff5a4 100644 --- a/stgit/stack.py +++ b/stgit/stack.py @@ -864,13 +864,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) @@ -889,10 +882,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(), @@ -903,9 +901,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') - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html