diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2009-01-27 23:34:29 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-01-28 20:11:21 -0800 |
commit | 29a03348a336f28025c824436a713cb9cb01b7a6 (patch) | |
tree | ab9c2c19e4af3fa33ef2d7b8aaddde85c35b638a /t/lib-rebase.sh | |
parent | 8712b3cdb0495f5a56b91cd67e2697412447a886 (diff) | |
download | git-29a03348a336f28025c824436a713cb9cb01b7a6.tar.gz git-29a03348a336f28025c824436a713cb9cb01b7a6.tar.xz |
t3404 & t3411: undo copy&paste
Rather than copying and pasting, which is prone to lead to fixes
missing in one version, move the fake-editor generator to t/t3404/.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/lib-rebase.sh')
-rw-r--r-- | t/lib-rebase.sh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/t/lib-rebase.sh b/t/lib-rebase.sh new file mode 100644 index 000000000..762ffcfa0 --- /dev/null +++ b/t/lib-rebase.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +set_fake_editor () { + echo "#!$SHELL_PATH" >fake-editor.sh + cat >> fake-editor.sh <<\EOF +case "$1" in +*/COMMIT_EDITMSG) + test -z "$FAKE_COMMIT_MESSAGE" || echo "$FAKE_COMMIT_MESSAGE" > "$1" + test -z "$FAKE_COMMIT_AMEND" || echo "$FAKE_COMMIT_AMEND" >> "$1" + exit + ;; +esac +test -z "$EXPECT_COUNT" || + test "$EXPECT_COUNT" = $(sed -e '/^#/d' -e '/^$/d' < "$1" | wc -l) || + exit +test -z "$FAKE_LINES" && exit +grep -v '^#' < "$1" > "$1".tmp +rm -f "$1" +cat "$1".tmp +action=pick +for line in $FAKE_LINES; do + case $line in + squash|edit) + action="$line";; + *) + echo sed -n "${line}s/^pick/$action/p" + sed -n "${line}p" < "$1".tmp + sed -n "${line}s/^pick/$action/p" < "$1".tmp >> "$1" + action=pick;; + esac +done +EOF + + test_set_editor "$(pwd)/fake-editor.sh" + chmod a+x fake-editor.sh +} |