add simple tests of consistency across rebase types
[gitweb.git] / t / lib-rebase.sh
index 6aefe27593e89d57f075bc0d3dbc5a1104d874b7..1e0ff285a625b3eec2a054f34c41aaab9dd59754 100644 (file)
@@ -47,6 +47,8 @@ for line in $FAKE_LINES; do
        case $line in
        squash|fixup|edit|reword)
                action="$line";;
+       exec*)
+               echo "$line" | sed 's/_/ /g' >> "$1";;
        "#")
                echo '# comment' >> "$1";;
        ">")
@@ -63,3 +65,19 @@ EOF
        test_set_editor "$(pwd)/fake-editor.sh"
        chmod a+x fake-editor.sh
 }
+
+# checks that the revisions in "$2" represent a linear range with the
+# subjects in "$1"
+test_linear_range () {
+       revlist_merges=$(git rev-list --merges "$2") &&
+       test -z "$revlist_merges" &&
+       expected=$1
+       set -- $(git log --reverse --format=%s "$2")
+       test "$expected" = "$*"
+}
+
+reset_rebase () {
+       test_might_fail git rebase --abort &&
+       git reset --hard &&
+       git clean -f
+}