[StGit PATCH 10/13] Refactor Series.new_patch
From: David Kågedal <hidden>
Date: 2016-06-15 22:43:34
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> --- 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')