Commit | Line | Data |
---|---|---|
38baedf2 DK |
1 | #!/bin/sh |
2 | ||
3 | test_description='Run "stg refresh"' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | test_expect_success 'Initialize StGit stack' ' | |
8 | stg init && | |
c3a72ae1 | 9 | echo expected*.txt >> .git/info/exclude && |
38baedf2 | 10 | echo patches.txt >> .git/info/exclude && |
c3a72ae1 PO |
11 | echo show.txt >> .git/info/exclude && |
12 | echo diff.txt >> .git/info/exclude && | |
38baedf2 DK |
13 | stg new p0 -m "base" && |
14 | for i in 1 2 3; do | |
15 | echo base >> foo$i.txt && | |
16 | git add foo$i.txt | |
17 | done | |
18 | stg refresh && | |
19 | for i in 1 2 3; do | |
20 | stg new p$i -m "foo $i" && | |
21 | echo "foo $i" >> foo$i.txt && | |
22 | stg refresh | |
23 | done | |
24 | ' | |
25 | ||
26 | cat > expected.txt <<EOF | |
27 | p0 | |
28 | p3 | |
29 | EOF | |
30 | test_expect_success 'Refresh top patch' ' | |
31 | echo bar 3 >> foo3.txt && | |
32 | stg refresh && | |
33 | stg status && | |
34 | test -z "$(stg status)" && | |
35 | stg patches foo3.txt > patches.txt && | |
36 | diff -u expected.txt patches.txt | |
37 | ' | |
38 | ||
39 | cat > expected.txt <<EOF | |
40 | p0 | |
41 | p2 | |
42 | EOF | |
43 | test_expect_success 'Refresh middle patch' ' | |
44 | stg status && | |
45 | echo bar 2 >> foo2.txt && | |
46 | stg refresh -p p2 && | |
47 | stg status && | |
48 | test -z "$(stg status)" && | |
49 | stg patches foo2.txt > patches.txt && | |
50 | diff -u expected.txt patches.txt | |
51 | ' | |
52 | ||
53 | cat > expected.txt <<EOF | |
54 | p0 | |
55 | p1 | |
56 | EOF | |
57 | test_expect_success 'Refresh bottom patch' ' | |
58 | stg status && | |
59 | echo bar 1 >> foo1.txt && | |
60 | stg refresh -p p1 && | |
61 | stg status && | |
62 | test -z "$(stg status)" && | |
63 | stg patches foo1.txt > patches.txt && | |
64 | diff -u expected.txt patches.txt | |
65 | ' | |
66 | ||
c3a72ae1 PO |
67 | cat > expected.txt <<EOF |
68 | p0 | |
69 | p1 | |
70 | p4 | |
71 | EOF | |
72 | cat > expected2.txt <<EOF | |
73 | diff --git a/foo1.txt b/foo1.txt | |
74 | index 728535d..6f34984 100644 | |
75 | --- a/foo1.txt | |
76 | +++ b/foo1.txt | |
77 | @@ -1,3 +1,4 @@ | |
78 | base | |
79 | foo 1 | |
80 | bar 1 | |
81 | +baz 1 | |
82 | EOF | |
83 | cat > expected3.txt <<EOF | |
84 | diff --git a/foo1.txt b/foo1.txt | |
85 | index 6f34984..a80eb63 100644 | |
86 | --- a/foo1.txt | |
87 | +++ b/foo1.txt | |
88 | @@ -2,3 +2,4 @@ base | |
89 | foo 1 | |
90 | bar 1 | |
91 | baz 1 | |
92 | +blah 1 | |
93 | diff --git a/foo2.txt b/foo2.txt | |
94 | index 415c9f5..43168f2 100644 | |
95 | --- a/foo2.txt | |
96 | +++ b/foo2.txt | |
97 | @@ -1,3 +1,4 @@ | |
98 | base | |
99 | foo 2 | |
100 | bar 2 | |
101 | +baz 2 | |
102 | EOF | |
103 | test_expect_success 'Refresh --index' ' | |
104 | stg status && | |
105 | stg new p4 -m "refresh_index" && | |
106 | echo baz 1 >> foo1.txt && | |
107 | git add foo1.txt && | |
108 | echo blah 1 >> foo1.txt && | |
109 | echo baz 2 >> foo2.txt && | |
110 | stg refresh --index && | |
111 | stg patches foo1.txt > patches.txt && | |
112 | git diff HEAD^..HEAD > show.txt && | |
113 | stg diff > diff.txt && | |
114 | diff -u expected.txt patches.txt && | |
115 | diff -u expected2.txt show.txt && | |
116 | diff -u expected3.txt diff.txt && | |
117 | stg new p5 -m "cleanup again" && | |
118 | stg refresh | |
119 | ' | |
38baedf2 | 120 | test_done |