Merge branch 'wk/doc-in-linux-3.x-era'
[gitweb.git] / t / lib-rebase.sh
index 6aefe27593e89d57f075bc0d3dbc5a1104d874b7..4b74ae460b8943c176b6563d374e1663f89a1d7b 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,36 @@ 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
+}
+
+cherry_pick () {
+       git cherry-pick -n "$2" &&
+       git commit -m "$1" &&
+       git tag "$1"
+}
+
+revert () {
+       git revert -n "$2" &&
+       git commit -m "$1" &&
+       git tag "$1"
+}
+
+make_empty () {
+       git commit --allow-empty -m "$1" &&
+       git tag "$1"
+}