git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Transaction.push_patch(): Set self.head only when we have a merge conflict

From
Karl Hasselström <kha@treskal.com>
Date
May 19, 2009, 10:07 UTC
Message-ID
<20090519100635.2943.31546.stgit@october.hq.vtech>

Setting self.head when we don't have a merge conflict is a harmless no-op---as long as we set it to the commit that was going to be the stack top anyway---so this patch should not change the behavior. But it's not really nice to do it unconditionally, especially considering that we want people to be able to understand what the code does ...

Also add a comment that explains why we set it, since the logic is rather more hairy than I'd like.

Signed-off-by: Karl Hasselström <kha@treskal.com>
---

This patch came out of a discussion I just had with David regarding his --set-tree patch.

 stgit/lib/transaction.py |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/stgit/lib/transaction.py b/stgit/lib/transaction.py
index 4148ff3..5c662bb 100644
--- a/stgit/lib/transaction.py
+++ b/stgit/lib/transaction.py
@@ -342,7 +342,13 @@ class StackTransaction(object):
         if any(getattr(cd, a) != getattr(orig_cd, a) for a in
                ['parent', 'tree', 'author', 'message']):
             comm = self.__stack.repository.commit(cd)
-            self.head = comm
+            if merge_conflict:
+                # When we produce a conflict, we'll run the update()
+                # function defined below _after_ having done the
+                # checkout in run(). To make sure that we check out
+                # the real stack top (as it will look after update()
+                # has been run), set it hard here.
+                self.head = comm
         else:
             comm = None
             s = ' (unmodified)'
Message 1 of 1 in “Transaction.push_patch(): Set self.head only when we have a merge conflict”
  1. Transaction.push_patch(): Set self.head only when we have a merge conflictKarl Hasselström, May 19, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.