From: David KÃ¥gedal <davidk@xxxxxxxxxxxxxx> This leaves the index and working tree in the state that merge-recursive left it, with unmerged files in different stages, and the non-conflicting changes in the index. Signed-off-by: David KÃ¥gedal <davidk@xxxxxxxxxxxxxx> --- stgit/stack.py | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-) diff --git a/stgit/stack.py b/stgit/stack.py index 8b77943..0e43f75 100644 --- a/stgit/stack.py +++ b/stgit/stack.py @@ -728,6 +728,7 @@ class Series(PatchSet): config.unset(self.format_version_key()) def refresh_patch(self, files = None, message = None, edit = False, + empty = False, show_patch = False, cache_update = True, author_name = None, author_email = None, @@ -777,9 +778,16 @@ class Series(PatchSet): bottom = patch.get_bottom() + if empty: + tree_id = git.get_commit(bottom).get_tree() + else: + tree_id = None + commit_id = git.commit(files = files, message = descr, parents = [bottom], cache_update = cache_update, + tree_id = tree_id, + set_head = True, allowempty = True, author_name = author_name, author_email = author_email, @@ -1083,11 +1091,10 @@ class Series(PatchSet): log = 'push' self.refresh_patch(cache_update = False, log = log) else: - # we store the correctly merged files only for - # tracking the conflict history. Note that the - # git.merge() operations should always leave the index - # in a valid state (i.e. only stage 0 files) - self.refresh_patch(cache_update = False, log = 'push(c)') + # we make the patch empty, with the merged state in + # the working tree. + self.refresh_patch(cache_update = False, empty = True, + log = 'push(c)') raise StackException, str(ex) return modified -- 1.5.3.rc3.119.g1812 - 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