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

[PATCH v2 RFC] rebase-i-p: if todo was reordered use HEAD as the rewritten parent

From
Stephen Haberman <stephen@exigencecorp.com>
Date
Oct 8, 2008, 06:41 UTC
Message-ID
<211dfcea6f13f8ddb3153add3bfa3395c4a7e8c8.1223445353.git.stephen@exigencecorp.com>
In-Reply-To
<c3ab1457d971985e349a0747178132c0c6f68b8a.1223445353.git.stephen@exigencecorp.com>

This seems like the best guess we can make until git sequencer marks are available. That being said, within the context of re-ordering a commit before its parent in todo, I think applying it on top of the current commit seems like a reasonable assumption of what the user intended.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
---
 git-rebase--interactive.sh |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 2e9270a..8a22d78 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -179,6 +179,15 @@ pick_one_preserving_merges () {
 		if test -f "$REWRITTEN"/$p
 		then
 			new_p=$(cat "$REWRITTEN"/$p)
+
+			# If the todo reordered commits, and our parent is marked for
+			# rewriting, but hasn't been gotten to yet, assume the user meant to
+			# drop it on top of the current HEAD
+			if test -z "$new_p"
+			then
+				new_p=$(git rev-parse HEAD)
+			fi
+
 			test $p != $new_p && fast_forward=f
 			case "$new_parents" in
 			*$new_p*)
-- 
1.6.0.2
Previous: Stephen HabermanNext: Junio C Hamano
Message 8 of 11 in “rebase-i-p: squashing and limiting todo”
  1. rebase-i-p: squashing and limiting todoStephen Haberman, Oct 8, 2008
  2. rebase-i-p: test to exclude commits from todo based on its parentsStephen Haberman, Oct 8, 2008
  3. rebase-i-p: use HEAD for updating the ref instead of mapping OLDHEADStephen Haberman, Oct 8, 2008
  4. rebase-i-p: delay saving current-commit to REWRITTEN if squashingStephen Haberman, Oct 8, 2008
  5. rebase-i-p: fix 'no squashing merges' tripping up non-mergesStephen Haberman, Oct 8, 2008
  6. rebase-i-p: only list commits that require rewriting in todoStephen Haberman, Oct 8, 2008
  7. rebase-i-p: do not include non-first-parent commits touching UPSTREAMStephen Haberman, Oct 8, 2008
  8. rebase-i-p: if todo was reordered use HEAD as the rewritten parentStephen Haberman, Oct 8, 2008
  9. Junio C HamanoOct 8, 2008
  10. Stephen HabermanOct 9, 2008
  11. Stephen HabermanOct 8, 2008

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.