mirror of
https://github.com/git/git.git
synced 2024-12-05 07:53:59 +08:00
t/lib-rebase: prepare for testing git rebase --rebase-merges
The format of the todo list is quite a bit different in the `--rebase-merges` mode; Let's prepare the fake editor to handle those todo lists properly, too. The original idea was that we keep the original command unless overridden, and because the original todo lists only had `pick` lines anyway, we could be sloppy and "override" the command by the same command (i.e. use the sed replacement pattern "pick" instead of "&"). This actually would not have worked with `fixup` and `squash` commands, but it would appear that we never tried to use the fake editor with `--autosquash`. However, in the next commit we want to use the fake editor in conjunction with `--rebase-merges`, so let's use the correct sed replacement pattern. Technically, it is not necessary to take care of the `fakesha` thing (where we reuse the sed replacement pattern to craft a new todo command), at least for now, as the only user of that thing overrides the `action` anyway. Nevertheless, for completeness' sake, we do take care of it. Helped-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e145d99347
commit
5dcdd7409a
@ -44,10 +44,10 @@ set_fake_editor () {
|
||||
rm -f "$1"
|
||||
echo 'rebase -i script before editing:'
|
||||
cat "$1".tmp
|
||||
action=pick
|
||||
action=\&
|
||||
for line in $FAKE_LINES; do
|
||||
case $line in
|
||||
pick|p|squash|s|fixup|f|edit|e|reword|r|drop|d)
|
||||
pick|p|squash|s|fixup|f|edit|e|reword|r|drop|d|label|l|reset|r|merge|m)
|
||||
action="$line";;
|
||||
exec_*|x_*|break|b)
|
||||
echo "$line" | sed 's/_/ /g' >> "$1";;
|
||||
@ -58,11 +58,12 @@ set_fake_editor () {
|
||||
bad)
|
||||
action="badcmd";;
|
||||
fakesha)
|
||||
test \& != "$action" || action=pick
|
||||
echo "$action XXXXXXX False commit" >> "$1"
|
||||
action=pick;;
|
||||
*)
|
||||
sed -n "${line}s/^pick/$action/p" < "$1".tmp >> "$1"
|
||||
action=pick;;
|
||||
sed -n "${line}s/^[a-z][a-z]*/$action/p" < "$1".tmp >> "$1"
|
||||
action=\&;;
|
||||
esac
|
||||
done
|
||||
echo 'rebase -i script after editing:'
|
||||
|
Loading…
Reference in New Issue
Block a user