Re: [StGit PATCH 09/13] Clear up the semantics of Series.new_patch
From: Catalin Marinas <hidden>
Date: 2016-06-15 22:43:40
On 14/09/2007, David Kågedal [off-list ref] wrote:
This patch adds a number of assertions to document and verify the complex restrictions of the input parameters to the Series.new_patch function. It also adds the requirement that 'before_existing' and 'commit' cannot be true at the same time when calling it, instead of updating 'commit' inside the function.
[...]
quoted hunk ↗ jump to hunk
--- a/stgit/stack.py +++ b/stgit/stack.py@@ -833,9 +833,16 @@ class Series(PatchSet): author_name = None, author_email = None, author_date = None, committer_name = None, committer_email = None, before_existing = False): - """Creates a new patch + """Creates a new patch, either pointing to an existing commit object, + or by creating a new commit object. """ + assert commit or (top and bottom) + assert not before_existing or (top and bottom) + assert not (commit and before_existing) + assert (top and bottom) or (not top and not bottom) + assert not top or (bottom == git.get_commit(top).get_parent())
The last assertion here prevents the use of 'stg pick --reverse'. This command creates an unapplied patch with top and bottom reversed and pushes it to force a three-way merge. It seems to work OK if I comment it out but I wonder whether it will break in the future with the planned removal of the top and bottom files. Thanks. -- Catalin