Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git-rebase--interactive.sh - git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e87d708a4db8a56819a9a9d17144898c31b6aeb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# 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.
#
# 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
# file and written to the tail of $done.
todo="$state_dir"/git-rebase-todo

GIT_CHERRY_PICK_HELP="$resolvemsg"
export GIT_CHERRY_PICK_HELP

# Initiate an action. If the cannot be any
# further action it  may exec a command
# or exit and not return.
#
# TODO: Consider a cleaner return model so it
# never exits and always return 0 if process
# is complete.
#
# Parameter 1 is the action to initiate.
#
# Returns 0 if the action was able to complete
# and if 1 if further processing is required.
initiate_action () {
	case "$1" in
	continue)
		exec git rebase--helper ${force_rebase:+--no-ff} $allow_empty_message \
		     --continue
		;;
	skip)
		git rerere clear
		exec git rebase--helper ${force_rebase:+--no-ff} $allow_empty_message \
		     --continue
		;;
	edit-todo)
		exec git rebase--helper --edit-todo
		;;
	show-current-patch)
		exec git show REBASE_HEAD --
		;;
	*)
		return 1 # continue
		;;
	esac
}

git_rebase__interactive () {
	initiate_action "$action"
	ret=$?
	if test $ret = 0; then
		return 0
	fi

	test -n "$keep_empty" && keep_empty="--keep-empty"
	test -n "$rebase_merges" && rebase_merges="--rebase-merges"
	test -n "$rebase_cousins" && rebase_cousins="--rebase-cousins"
	test -n "$autosquash" && autosquash="--autosquash"
	test -n "$verbose" && verbose="--verbose"
	test -n "$force_rebase" && force_rebase="--no-ff"
	test -n "$restrict_revisions" && restrict_revisions="--restrict-revisions=^$restrict_revisions"
	test -n "$upstream" && upstream="--upstream=$upstream"
	test -n "$onto" && onto="--onto=$onto"
	test -n "$squash_onto" && squash_onto="--squash-onto=$squash_onto"
	test -n "$onto_name" && onto_name="--onto-name=$onto_name"
	test -n "$head_name" && head_name="--head-name=$head_name"
	test -n "$strategy" && strategy="--strategy=$strategy"
	test -n "$strategy_opts" && strategy_opts="--strategy-opts=$strategy_opts"
	test -n "$switch_to" && switch_to="--switch-to=$switch_to"
	test -n "$cmd" && cmd="--cmd=$cmd"

	exec git rebase--interactive2 "$keep_empty" "$rebase_merges" "$rebase_cousins" \
		"$upstream" "$onto" "$squash_onto" "$restrict_revision" \
		"$allow_empty_message" "$autosquash" "$verbose" \
		"$force_rebase" "$onto_name" "$head_name" "$strategy" \
		"$strategy_opts" "$cmd" "$switch_to" \
		"$allow_rerere_autoupdate" "$gpg_sign_opt" "$signoff"
}