summaryrefslogtreecommitdiffstats
path: root/test/conflicts.test
blob: a5eb819c7b044633f879abc552c3ca85a3cc424a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
This test case creates a patch and then applies that patch to a modified
source file. The source file is modified until the patch doesn't apply
anymore, then the patch is fixed.

	$ mkdir patches

	$ cat > one.txt
	< 1
	< 2
	< 3
	< 4
	< 5
	< 6
	< 7
	< --
	< a
	< b
	< c
	< d
	< e
	< f
	< g

	$ quilt new a.diff
	> Patch %{P}a.diff is now on top
	$ echo %{?}
	> 0

	$ quilt add one.txt
	> File one.txt added to patch %{P}a.diff
	$ echo %{?}
	> 0

	$ mv one.txt one.orig
	$ sed -e "s/4/4+/" -e 's/d/d+/' one.orig > one.txt
	$ quilt refresh
	> Refreshed patch %{P}a.diff
	$ echo %{?}
	> 0

	$ quilt pop -q
	> Removing patch %{P}a.diff
	> No patches applied
	$ echo %{?}
	> 0


	$ sed -e "s/^\\([17]\\)\$/\\1-/" one.orig > one.txt
	$ quilt push -q
	> Applying patch %{P}a.diff
	> Now at patch %{P}a.diff
	$ echo %{?}
	> 0

	$ quilt pop -q
	> Removing patch %{P}a.diff
	> No patches applied
	$ echo %{?}
	> 0

	$ sed -e "s/^\\([1267]\\)\$/\\1-/" one.orig > one.txt
	$ quilt push -q
	> Applying patch %{P}a.diff
	> Now at patch %{P}a.diff
	$ echo %{?}
	> 0

	$ quilt pop -q
	> Removing patch %{P}a.diff
	> No patches applied
	$ echo %{?}
	> 0


	$ sed -e "s/^\\([123567]\\)\$/\\1-/" one.orig > one.txt
	$ quilt push -q
	> Applying patch %{P}a.diff
	> 1 out of 2 hunks FAILED
	> Patch %{P}a.diff does not apply (enforce with -f)
	$ echo %{?}
	> 1

	$ quilt push -qf
	> Applying patch %{P}a.diff
	>~ 1 out of 2 hunks FAILED -- saving rejects to (file )?`?one.txt.rej'?
	> Applied patch %{P}a.diff (forced; needs refresh)
	$ echo %{?}
	> 1

	$ mv one.txt one.x
	$ sed -e "s/4/4+/" one.x > one.txt
	$ rm -f one.x
	$ quilt diff -z | grep -v "^\\(---\\|+++\\)"
	>~ Index: [^/]+/one\.txt
	> ===================================================================
	> @@ -1,7 +1,7 @@
	>  1-
	>  2-
	>  3-
	> -4
	> +4+
	>  5-
	>  6-
	>  7-
	$ echo %{?}
	> 0

	$ quilt diff | grep -v "^\\(---\\|+++\\)"
	>~ Index: [^/]+/one\.txt
	> ===================================================================
	> @@ -1,7 +1,7 @@
	>  1-
	>  2-
	>  3-
	> -4
	> +4+
	>  5-
	>  6-
	>  7-
	> @@ -9,7 +9,7 @@
	>  a
	>  b
	>  c
	> -d
	> +d+
	>  e
	>  f
	>  g
	$ echo %{?}
	> 0

	$ quilt refresh
	> Refreshed patch %{P}a.diff
	$ echo %{?}
	> 0

	$ cat patches/a.diff | grep -v "^\\(---\\|+++\\)"
	>~ Index: [^/]+/one\.txt
	> ===================================================================
	> @@ -1,7 +1,7 @@
	>  1-
	>  2-
	>  3-
	> -4
	> +4+
	>  5-
	>  6-
	>  7-
	> @@ -9,7 +9,7 @@
	>  a
	>  b
	>  c
	> -d
	> +d+
	>  e
	>  f
	>  g

	$ quilt pop -q
	> Removing patch %{P}a.diff
	> No patches applied
	$ echo %{?}
	> 0