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

[GSoC][PATCH 2/4] rebase: strip unused code in git-rebase--preserve-merges.sh

From
Alban Gruin <alban.gruin@gmail.com>
Date
May 22, 2018, 13:31 UTC
Message-ID
<20180522133110.32723-3-alban.gruin@gmail.com>
In-Reply-To
<20180522133110.32723-1-alban.gruin@gmail.com>

This removes the code coming from git-rebase--interactive.sh that is not needed by preserve-merges.

Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
---
 git-rebase--preserve-merges.sh | 63 +++---------------------------------------
 1 file changed, 4 insertions(+), 59 deletions(-)
diff --git a/git-rebase--preserve-merges.sh b/git-rebase--preserve-merges.sh
index 9947e6265..7bbbb2438 100644
--- a/git-rebase--preserve-merges.sh
+++ b/git-rebase--preserve-merges.sh
@@ -1,12 +1,8 @@
-# This shell script fragment is sourced by git-rebase to implement
-# its interactive mode.  "git rebase --interactive" makes it easy
-# to fix up commits in the middle of a series and rearrange commits.
+# This shell script fragment is sourced by git-rebase to implement its
+# preserve-merges mode.
 #
 # Copyright (c) 2006 Johannes E. Schindelin
 #
-# The original idea comes from Eric W. Biederman, in
-# https://public-inbox.org/git/m1odwkyuf5.fsf_-_@ebiederm.dsl.xmission.com/
-#
 # The file containing rebase commands, comments, and empty lines.
 # This file is created by "git rebase -i" then edited by the user.  As
 # the lines are processed, they are removed from the front of this
@@ -281,17 +277,7 @@ pick_one () {
 		empty_args="--allow-empty"
 	fi
 
-	test -d "$rewritten" &&
-		pick_one_preserving_merges "$@" && return
-	output eval git cherry-pick $allow_rerere_autoupdate $allow_empty_message \
-			${gpg_sign_opt:+$(git rev-parse --sq-quote "$gpg_sign_opt")} \
-			$signoff "$strategy_args" $empty_args $ff "$@"
-
-	# If cherry-pick dies it leaves the to-be-picked commit unrecorded. Reschedule
-	# previous task so this commit is not lost.
-	ret=$?
-	case "$ret" in [01]) ;; *) reschedule_last_action ;; esac
-	return $ret
+	pick_one_preserving_merges "$@"
 }
 
 pick_one_preserving_merges () {
@@ -755,11 +741,6 @@ get_missing_commit_check_level () {
 initiate_action () {
 	case "$1" in
 	continue)
-		if test ! -d "$rewritten"
-		then
-			exec git rebase--helper ${force_rebase:+--no-ff} $allow_empty_message \
-				--continue
-		fi
 		# do we have anything to commit?
 		if git diff-index --cached --quiet HEAD --
 		then
@@ -818,12 +799,6 @@ first and then run 'git rebase --continue' again.")"
 		;;
 	skip)
 		git rerere clear
-
-		if test ! -d "$rewritten"
-		then
-			exec git rebase--helper ${force_rebase:+--no-ff} $allow_empty_message \
-				--continue
-		fi
 		do_rest
 		return 0
 		;;
@@ -936,41 +911,11 @@ EOF
 	}
 
 	expand_todo_ids
-
-	test -d "$rewritten" || test -n "$force_rebase" ||
-	onto="$(git rebase--helper --skip-unnecessary-picks)" ||
-	die "Could not skip unnecessary pick commands"
-
 	checkout_onto
-	if test -z "$rebase_root" && test ! -d "$rewritten"
-	then
-		require_clean_work_tree "rebase"
-		exec git rebase--helper ${force_rebase:+--no-ff} $allow_empty_message \
-			--continue
-	fi
 	do_rest
 }
 
-git_rebase__interactive () {
-	initiate_action "$action"
-	ret=$?
-	if test $ret = 0; then
-		return 0
-	fi
-
-	setup_reflog_action
-	init_basic_state
-
-	init_revisions_and_shortrevisions
-
-	git rebase--helper --make-script ${keep_empty:+--keep-empty} \
-		$revisions ${restrict_revision+^$restrict_revision} >"$todo" ||
-	die "$(gettext "Could not generate todo list")"
-
-	complete_action
-}
-
-git_rebase__interactive__preserve_merges () {
+git_rebase__preserve_merges () {
 	initiate_action "$action"
 	ret=$?
 	if test $ret = 0; then
-- 
2.16.1
Previous: Alban GruinNext: Alban Gruin
Message 5 of 26 in “rebase: split rebase -p from rebase -i”
  1. Alban GruinMay 22, 2018
  2. [GSoC][PATCH 1/4] rebase: duplicate git-rebase--interactive.sh to git-rebase--preserve-merges.shAlban Gruin, May 22, 2018
  3. Stefan BellerMay 22, 2018
  4. Alban GruinMay 22, 2018
  5. [GSoC][PATCH 2/4] rebase: strip unused code in git-rebase--preserve-merges.shAlban Gruin, May 22, 2018
  6. [GSoC][PATCH 3/4] rebase: use the new git-rebase--preserve-merges.shAlban Gruin, May 22, 2018
  7. [GSoC][PATCH 4/4] rebase: remove -p code from git-rebase--interactive.shAlban Gruin, May 22, 2018
  8. Stefan BellerMay 22, 2018
  9. [GSoC][PATCH v2 0/4] rebase: split rebase -p from rebase -iAlban Gruin, May 22, 2018
  10. [GSoC][PATCH v2 2/4] rebase: strip unused code in git-rebase--preserve-merges.shAlban Gruin, May 22, 2018
  11. [GSoC][PATCH v2 3/4] rebase: use the new git-rebase--preserve-merges.shAlban Gruin, May 22, 2018
  12. [GSoC][PATCH v2 1/4] rebase: duplicate git-rebase--interactive.sh to git-rebase--preserve-merges.shAlban Gruin, May 22, 2018
  13. [GSoC][PATCH v2 4/4] rebase: remove -p code from git-rebase--interactive.shAlban Gruin, May 22, 2018
  14. [GSoC][PATCH v3 0/4] rebase: split rebase -p from rebase -iAlban Gruin, May 24, 2018
  15. [GSoC][PATCH v3 4/4] rebase: remove -p code from git-rebase--interactive.shAlban Gruin, May 24, 2018
  16. [GSoC][PATCH v3 3/4] rebase: use the new git-rebase--preserve-merges.shAlban Gruin, May 24, 2018
  17. [GSoC][PATCH v3 2/4] rebase: strip unused code in git-rebase--preserve-merges.shAlban Gruin, May 24, 2018
  18. [GSoC][PATCH v3 1/4] rebase: duplicate git-rebase--interactive.sh to git-rebase--preserve-merges.shAlban Gruin, May 24, 2018
  19. Junio C HamanoMay 26, 2018
  20. Alban GruinMay 24, 2018
  21. Johannes SchindelinMay 25, 2018
  22. [GSoC][PATCH v4 0/4] rebase: split rebase -p from rebase -iAlban Gruin, May 28, 2018
  23. [GSoC][PATCH v4 1/4] rebase: introduce a dedicated backend for --preserve-mergesAlban Gruin, May 28, 2018
  24. [GSoC][PATCH v4 2/4] rebase: strip unused code in git-rebase--preserve-merges.shAlban Gruin, May 28, 2018
  25. [GSoC][PATCH v4 3/4] rebase: use the new git-rebase--preserve-merges.shAlban Gruin, May 28, 2018
  26. [GSoC][PATCH v4 4/4] rebase: remove -p code from git-rebase--interactive.shAlban Gruin, May 28, 2018

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.