comparison tests/test-obsolete.t @ 17171:9c750c3e4fac

obsolete: compute unstable changeset An unstable changeset is a changeset *not* obsolete but with some obsolete ancestors. The current logic to decide if a changeset is unstable is naive and very inefficient. A better solution is to compute the set of unstable changeset with a simple revset and to cache the result. But this require cache invalidation logic. Simpler version goes first.
author Pierre-Yves David <pierre-yves.david@logilab.fr>
date Fri, 06 Jul 2012 00:18:09 +0200
parents 63a4a3871607
children 12fdaa30063a
comparison
equal deleted inserted replaced
17170:63a4a3871607 17171:9c750c3e4fac
1 1 $ cat >> $HGRCPATH << EOF
2 > [extensions]
3 > graphlog=
4 > [phases]
5 > # public changeset are not obsolete
6 > publish=false
7 > EOF
2 $ mkcommit() { 8 $ mkcommit() {
3 > echo "$1" > "$1" 9 > echo "$1" > "$1"
4 > hg add "$1" 10 > hg add "$1"
5 > hg ci -m "add $1" 11 > hg ci -m "add $1"
6 > } 12 > }
60 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'} 66 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
61 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'} 67 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
62 68
63 Check that graphlog detect that a changeset is obsolete: 69 Check that graphlog detect that a changeset is obsolete:
64 70
65 $ hg --config 'extensions.graphlog=' glog 71 $ hg glog
66 @ changeset: 5:5601fb93a350 72 @ changeset: 5:5601fb93a350
67 | tag: tip 73 | tag: tip
68 | parent: 1:7c3bad9141dc 74 | parent: 1:7c3bad9141dc
69 | user: test 75 | user: test
70 | date: Thu Jan 01 00:00:00 1970 +0000 76 | date: Thu Jan 01 00:00:00 1970 +0000
228 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'} 234 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
229 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'} 235 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
230 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'} 236 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
231 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'} 237 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
232 238
239
233 On push 240 On push
234 241
235 $ hg push ../tmpc 242 $ hg push ../tmpc
236 pushing to ../tmpc 243 pushing to ../tmpc
237 searching for changes 244 searching for changes
241 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'} 248 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f 0 {'date': '56 12', 'user': 'test'}
242 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'} 249 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 {'date': '1337 0', 'user': 'test'}
243 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'} 250 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 {'date': '1338 0', 'user': 'test'}
244 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'} 251 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 {'date': '1339 0', 'user': 'test'}
245 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 {'date': '1339 0', 'user': 'test'} 252 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 {'date': '1339 0', 'user': 'test'}
253
254 detect outgoing obsolete and unstable
255 ---------------------------------------
256
257 $ hg glog
258 o changeset: 5:5601fb93a350
259 | tag: tip
260 | parent: 1:7c3bad9141dc
261 | user: test
262 | date: Thu Jan 01 00:00:00 1970 +0000
263 | summary: add new_3_c
264 |
265 | x changeset: 4:ca819180edb9
266 |/ parent: 1:7c3bad9141dc
267 | user: test
268 | date: Thu Jan 01 00:00:00 1970 +0000
269 | summary: add new_2_c
270 |
271 | x changeset: 3:cdbce2fbb163
272 |/ parent: 1:7c3bad9141dc
273 | user: test
274 | date: Thu Jan 01 00:00:00 1970 +0000
275 | summary: add new_c
276 |
277 | o changeset: 2:245bde4270cd
278 |/ user: test
279 | date: Thu Jan 01 00:00:00 1970 +0000
280 | summary: add original_c
281 |
282 o changeset: 1:7c3bad9141dc
283 | user: test
284 | date: Thu Jan 01 00:00:00 1970 +0000
285 | summary: add b
286 |
287 o changeset: 0:1f0dee641bb7
288 user: test
289 date: Thu Jan 01 00:00:00 1970 +0000
290 summary: add a
291
292 $ hg up -q 'desc("new_2_c")'
293 $ mkcommit original_d
294 $ hg glog -r '::unstable()'
295 @ changeset: 6:7878242aeece
296 | tag: tip
297 | parent: 4:ca819180edb9
298 | user: test
299 | date: Thu Jan 01 00:00:00 1970 +0000
300 | summary: add original_d
301 |
302 x changeset: 4:ca819180edb9
303 | parent: 1:7c3bad9141dc
304 | user: test
305 | date: Thu Jan 01 00:00:00 1970 +0000
306 | summary: add new_2_c
307 |
308 o changeset: 1:7c3bad9141dc
309 | user: test
310 | date: Thu Jan 01 00:00:00 1970 +0000
311 | summary: add b
312 |
313 o changeset: 0:1f0dee641bb7
314 user: test
315 date: Thu Jan 01 00:00:00 1970 +0000
316 summary: add a
317