| #!/bin/sh |
| |
| test_description='Simple test cases for "stg reset"' |
| |
| . ./test-lib.sh |
| |
| # Ignore our own output files. |
| cat > .git/info/exclude <<EOF |
| /expected.txt |
| EOF |
| |
| test_expect_success 'Initialize StGit stack with three patches' ' |
| stg init && |
| echo 000 >> a && |
| stg add a && |
| git commit -m a && |
| echo 111 >> a && |
| git commit -a -m p1 && |
| echo 222 >> a && |
| git commit -a -m p2 && |
| echo 333 >> a && |
| git commit -a -m p3 && |
| stg uncommit -n 3 && |
| stg pop |
| ' |
| |
| cat > expected.txt <<EOF |
| 000 |
| 111 |
| EOF |
| test_expect_success 'Pop one patch ...' ' |
| stg pop && |
| test "$(echo $(stg series --all))" = "> p1 - p2 - p3" && |
| test_cmp expected.txt a |
| ' |
| |
| cat > expected.txt <<EOF |
| 000 |
| 111 |
| 222 |
| EOF |
| test_expect_success '... and undo it' ' |
| stg reset master.stgit^~1 && |
| test "$(echo $(stg series --all))" = "+ p1 > p2 - p3" && |
| test_cmp expected.txt a |
| ' |
| |
| cat > expected.txt <<EOF |
| 000 |
| 111 |
| 222 |
| 333 |
| EOF |
| test_expect_success 'Push one patch ...' ' |
| stg push && |
| test "$(echo $(stg series --all))" = "+ p1 + p2 > p3" && |
| test_cmp expected.txt a |
| ' |
| |
| cat > expected.txt <<EOF |
| 000 |
| 111 |
| 222 |
| EOF |
| test_expect_success '... and undo it' ' |
| stg reset master.stgit^~1 && |
| test "$(echo $(stg series --all))" = "+ p1 > p2 - p3" && |
| test_cmp expected.txt a |
| ' |
| |
| test_expect_success 'Commit one patch ...' ' |
| stg commit && |
| test "$(echo $(stg series --all))" = "> p2 - p3" |
| ' |
| |
| test_expect_success '... and undo it' ' |
| stg reset master.stgit^~1 && |
| test "$(echo $(stg series --all))" = "+ p1 > p2 - p3" |
| ' |
| |
| test_expect_success 'Hide a patch ...' ' |
| stg hide p3 && |
| test "$(echo $(stg series --all))" = "+ p1 > p2 ! p3" |
| ' |
| |
| test_expect_success '... undo the hiding ...' ' |
| stg reset master.stgit^~1 && |
| test "$(echo $(stg series --all))" = "+ p1 > p2 - p3" |
| ' |
| |
| test_expect_success '... unhide the patch ...' ' |
| stg hide p3 && stg unhide p3 && |
| test "$(echo $(stg series --all))" = "+ p1 > p2 - p3" |
| ' |
| |
| test_expect_success '... and undo the unhiding' ' |
| stg reset master.stgit^~1 && |
| test "$(echo $(stg series --all))" = "+ p1 > p2 ! p3" && |
| stg unhide p3 |
| ' |
| |
| cat > expected.txt <<EOF |
| 000 |
| 111 |
| EOF |
| test_expect_success 'Delete two patches ...' ' |
| stg delete p2 p3 && |
| test "$(echo $(stg series --all))" = "> p1" && |
| test_cmp expected.txt a |
| ' |
| |
| test_expect_success '... and undo one of the deletions ...' ' |
| stg reset master.stgit^~1 p3 && |
| test "$(echo $(stg series --all))" = "> p1 - p3" && |
| test_cmp expected.txt a |
| ' |
| |
| test_expect_success '... then undo the first undo ...' ' |
| stg reset master.stgit^~1 && |
| test "$(echo $(stg series --all))" = "> p1" && |
| test_cmp expected.txt a |
| ' |
| |
| cat > expected.txt <<EOF |
| 000 |
| 111 |
| 222 |
| EOF |
| test_expect_success '... and undo the other deletion' ' |
| stg reset master.stgit^~3 p2 && |
| stg push p2 && |
| test "$(echo $(stg series --all))" = "+ p1 > p2" && |
| test_cmp expected.txt a |
| ' |
| |
| cat > expected.txt <<EOF |
| 000 |
| 111 |
| 222 |
| ggg |
| EOF |
| test_expect_success 'Refresh a patch ...' ' |
| echo ggg >> a && |
| stg refresh && |
| test "$(echo $(stg series --all))" = "+ p1 > p2" && |
| test_cmp expected.txt a |
| ' |
| |
| cat > expected.txt <<EOF |
| 000 |
| 111 |
| 222 |
| EOF |
| test_expect_success '... and undo the refresh' ' |
| stg reset master.stgit^~2 && |
| test "$(echo $(stg series --all))" = "+ p1 > p2" && |
| test_cmp expected.txt a |
| ' |
| |
| test_done |