Commit | Line | Data |
---|---|---|
b0dfbed3 | 1 | #!/bin/sh |
051090dd | 2 | test_description='Test git/StGit interoperability with "stg repair"' |
b0dfbed3 KH |
3 | . ./test-lib.sh |
4 | ||
5 | test_expect_success 'Create some git-only history' ' | |
6 | echo foo > foo.txt && | |
7 | git add foo.txt && | |
8 | git commit -a -m foo && | |
9 | git tag foo-tag && | |
10 | for i in 0 1 2 3 4; do | |
11 | echo foo$i >> foo.txt && | |
12 | git commit -a -m foo$i; | |
13 | done | |
14 | ' | |
15 | ||
16 | test_expect_success 'Initialize the StGit repository' ' | |
17 | stg init | |
18 | ' | |
19 | ||
20 | test_expect_success 'Create five patches' ' | |
21 | for i in 0 1 2 3 4; do | |
22 | stg new p$i -m p$i; | |
23 | done && | |
24 | [ "$(echo $(stg applied))" = "p0 p1 p2 p3 p4" ] && | |
25 | [ "$(echo $(stg unapplied))" = "" ] | |
26 | ' | |
27 | ||
28 | test_expect_success 'Pop two patches with git-reset' ' | |
29 | git reset --hard HEAD~2 && | |
30 | ! stg refresh && | |
051090dd | 31 | stg repair && |
b0dfbed3 KH |
32 | stg refresh && |
33 | [ "$(echo $(stg applied))" = "p0 p1 p2" ] && | |
34 | [ "$(echo $(stg unapplied))" = "p3 p4" ] | |
35 | ' | |
36 | ||
37 | test_expect_success 'Create a new patch' ' | |
38 | stg new q0 -m q0 && | |
39 | [ "$(echo $(stg applied))" = "p0 p1 p2 q0" ] && | |
40 | [ "$(echo $(stg unapplied))" = "p3 p4" ] | |
41 | ' | |
42 | ||
43 | test_expect_success 'Go to an unapplied patch with with git-reset' ' | |
44 | git reset --hard $(stg id p3) && | |
45 | ! stg refresh && | |
051090dd | 46 | stg repair && |
b0dfbed3 KH |
47 | stg refresh && |
48 | [ "$(echo $(stg applied))" = "p0 p1 p2 p3" ] && | |
49 | [ "$(echo $(stg unapplied))" = "q0 p4" ] | |
50 | ' | |
51 | ||
52 | test_expect_success 'Go back to below the stack base with git-reset' ' | |
53 | git reset --hard foo-tag && | |
051090dd | 54 | stg repair && |
b0dfbed3 KH |
55 | [ "$(echo $(stg applied))" = "" ] && |
56 | [ "$(echo $(stg unapplied))" = "p0 p1 p2 p3 q0 p4" ] | |
57 | ' | |
58 | ||
59 | test_done |