comparison tests/test-evolve.t @ 137:bbc653876876

fix evolve test
author Pierre-Yves David <pierre-yves.david@logilab.fr>
date Fri, 17 Feb 2012 19:01:25 +0100
parents tests/test-evolution.t@64ca29eef349
children 605ed785268a
comparison
equal deleted inserted replaced
136:915728be8afd 137:bbc653876876
1 $ cat >> $HGRCPATH <<EOF
2 > [defaults]
3 > amend=-d "0 0"
4 > [web]
5 > push_ssl = false
6 > allow_push = *
7 > [phases]
8 > publish = False
9 > [alias]
10 > qlog = log --template='{rev} - {node|short} {desc} ({phase})\n'
11 > [diff]
12 > git = 1
13 > unified = 0
14 > [extensions]
15 > hgext.rebase=
16 > hgext.graphlog=
17 > EOF
18 $ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> $HGRCPATH
19 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
20 $ mkcommit() {
21 > echo "$1" > "$1"
22 > hg add "$1"
23 > hg ci -m "add $1"
24 > }
25
26 various init
27
28 $ hg init local
29 $ cd local
30 $ mkcommit a
31 $ mkcommit b
32 $ cat >> .hg/hgrc << EOF
33 > [phases]
34 > publish = True
35 > EOF
36 $ hg pull -q . # make 1 public
37 $ rm .hg/hgrc
38 $ mkcommit c
39 $ mkcommit d
40 $ hg up 1
41 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
42 $ mkcommit e -q
43 created new head
44 $ mkcommit f
45 $ hg qlog
46 5 - e44648563c73 add f (draft)
47 4 - fbb94e3a0ecf add e (draft)
48 3 - 47d2a3944de8 add d (draft)
49 2 - 4538525df7e2 add c (draft)
50 1 - 7c3bad9141dc add b (public)
51 0 - 1f0dee641bb7 add a (public)
52
53 test simple kill
54
55 $ hg kill 5
56 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
57 working directory now at fbb94e3a0ecf
58 $ hg qlog
59 4 - fbb94e3a0ecf add e (draft)
60 3 - 47d2a3944de8 add d (draft)
61 2 - 4538525df7e2 add c (draft)
62 1 - 7c3bad9141dc add b (public)
63 0 - 1f0dee641bb7 add a (public)
64
65 test multiple kill
66
67 $ hg kill 4 3
68 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
69 working directory now at 7c3bad9141dc
70 $ hg qlog
71 2 - 4538525df7e2 add c (draft)
72 1 - 7c3bad9141dc add b (public)
73 0 - 1f0dee641bb7 add a (public)
74 $ cd ..
75
76 ##########################
77 importing Parren test
78 ##########################
79
80 $ cat << EOF >> $HGRCPATH
81 > [ui]
82 > logtemplate = "{rev}\t{bookmarks}: {desc|firstline} - {author|user}\n"
83 > EOF
84
85 Creating And Updating Changeset
86 ===============================
87
88 Setup the Base Repo
89 -------------------
90
91 We start with a plain base repo::
92
93 $ hg init main; cd main
94 $ cat >main-file-1 <<-EOF
95 > One
96 >
97 > Two
98 >
99 > Three
100 > EOF
101 $ echo Two >main-file-2
102 $ hg add
103 adding main-file-1
104 adding main-file-2
105 $ hg commit --message base
106 $ cd ..
107
108 and clone this into a new repo where we do our work::
109
110 $ hg clone main work
111 updating to branch default
112 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
113 $ cd work
114
115
116 Create First Patch
117 ------------------
118
119 To begin with, we just do the changes that will be the initial version of the changeset::
120
121 $ echo One >file-from-A
122 $ sed -i'' -e s/One/Eins/ main-file-1
123 $ hg add file-from-A
124
125 So this is what we would like our changeset to be::
126
127 $ hg diff
128 diff --git a/file-from-A b/file-from-A
129 new file mode 100644
130 --- /dev/null
131 +++ b/file-from-A
132 @@ -0,0 +1,1 @@
133 +One
134 diff --git a/main-file-1 b/main-file-1
135 --- a/main-file-1
136 +++ b/main-file-1
137 @@ -1,1 +1,1 @@
138 -One
139 +Eins
140
141 To commit it we just - commit it::
142
143 $ hg commit --message "a nifty feature"
144
145 and place a bookmark so we can easily refer to it again (which we could have done before the commit)::
146
147 $ hg book feature-A
148
149
150 Create Second Patch
151 -------------------
152
153 Let's do this again for the second changeset::
154
155 $ echo Two >file-from-B
156 $ sed -i'' -e s/Two/Zwie/ main-file-1
157 $ hg add file-from-B
158
159 Before committing, however, we need to switch to a new bookmark for the second
160 changeset. Otherwise we would inadvertently move the bookmark for our first changeset.
161 It is therefore advisable to always set the bookmark before committing::
162
163 $ hg book feature-B
164 $ hg commit --message "another feature"
165
166 So here we are::
167
168 $ hg book
169 feature-A 1:568a468b60fc
170 * feature-B 2:7b36850622b2
171
172
173 Fix The Second Patch
174 --------------------
175
176 There's a typo in feature-B. We spelled *Zwie* instead of *Zwei*::
177
178 $ hg diff --change tip | grep -F Zwie
179 +Zwie
180
181 Fixing this is very easy. Just change::
182
183 $ sed -i'' -e s/Zwie/Zwei/ main-file-1
184
185 and **amend**::
186
187 $ hg amend --note "fix spelling of Zwei"
188
189 The `--note` is our commit message for the *update* only. So its only purpose
190 is to document the evolution of the changeset. If we use `--message` with
191 `amend`, it replaces the commit message of the changeset itself.
192
193 This results in a new single changeset for our amended changeset, and the old
194 changeset plus the updating changeset are hidden from view by default::
195
196 $ hg log
197 4 feature-B: another feature - test
198 1 feature-A: a nifty feature - test
199 0 : base - test
200
201 $ hg up feature-A -q
202 $ sed -i'' -e s/Eins/Un/ main-file-1
203
204 $ hg amend --note 'french looks better'
205 $ hg log
206 6 feature-A: a nifty feature - test
207 4 feature-B: another feature - test
208 1 : a nifty feature - test
209 0 : base - test
210 $ hg stabilize
211 hg rebase -Dr f8111a076f09 -d 23409eba69a0
212 $ hg up null -q #prevent feature-A bookmark to move # XXX grml
213 $ hg bookmark
214 feature-A 6:23409eba69a0
215 feature-B 4:f8111a076f09
216 $ hg up 6
217 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
218 $ hg bookmark
219 feature-A 6:23409eba69a0
220 feature-B 4:f8111a076f09
221 $ hg bookmark -if feature-A
222 $ hg graft -O 4
223 grafting revision 4
224 merging main-file-1
225 $ hg bookmark -ifr 7 feature-B # XXX not bookmark support in rebase --keep :-/
226 $ hg log
227 7 feature-B: another feature - test
228 6 feature-A: a nifty feature - test
229 0 : base - test
230
231 Test commit -o options
232
233 $ hg up 6
234 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
235 $ hg revert -r 7 --all
236 adding file-from-B
237 reverting main-file-1
238 $ sed -i'' -e s/Zwei/deux/ main-file-1
239 $ hg commit -m 'another feature that rox' -o 7
240 created new head
241 $ hg log
242 8 feature-B: another feature that rox - test
243 6 feature-A: a nifty feature - test
244 0 : base - test