Excerpts from Andrew Pimlott's message of Tue Jun 25 16:03:52 -0700 2013:
Thomas's patch didn't do this: fixup! or squash! after the first is
simply discarded, so you see:
pick d78c915 original
fixup 0c6388e fixup! original
fixup d15b556 fixup! original
fixup 1e39bcd fixup! original
But it will be a simple change to keep all the fixup!s and squash!s. I
will do this (and try to make up for the carelessness of my previous
patch).
In order to test this, I wrote a helper function to dump the rebase -i
todo list. Would you like this introduced in its own patch, or
combined? See below.
Andrew
---8<---
Subject: [PATCH] lib-rebase: set_cat_todo_editor
Add a helper for testing rebase -i todo lists. This can be used to verify
the expected user experience, even for todo list changes that do not affect
the outcome of rebase.
Signed-off-by: Andrew Pimlott <redacted>
---
t/lib-rebase.sh | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/t/lib-rebase.sh b/t/lib-rebase.sh
index 4b74ae4..d118dd6 100644
--- a/t/lib-rebase.sh
+++ b/t/lib-rebase.sh
@@ -66,6 +66,19 @@ EOF
chmod a+x fake-editor.sh
}
+# After set_cat_todo_editor, rebase -i will write the todo list (ignoring
+# blank lines and comments) to stdout, and exit failure.
+
+set_cat_todo_editor () {
+ echo "#!$SHELL_PATH" >fake-editor.sh
+ cat >> fake-editor.sh <<\EOF
+grep "^[^#]" "$1"
+exit 1
+EOF
+ chmod a+x fake-editor.sh
+ test_set_editor "$(pwd)/fake-editor.sh"
+}
+
# checks that the revisions in "$2" represent a linear range with the
# subjects in "$1"
test_linear_range () {--
1.7.10.4