Mercurial > hg
comparison tests/test-histedit-obsolete.t @ 28224:8ec5478aa0d6
histedit: also handle locally missing nodes when reading obsolescence
The previous version of the code was interpreting markers to a missing
node as a prune in all cases. The expected way to handle such
situation is to keep reading markers, only turning successors into
"prune" if they are at the end of a chain.
We update the code and add a test for this.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 24 Feb 2016 16:58:07 +0100 |
parents | eed7d8c07c20 |
children | 7c22b5bb3a03 |
comparison
equal
deleted
inserted
replaced
28223:0a853dc9b306 | 28224:8ec5478aa0d6 |
---|---|
52 $ hg debugobsolete | 52 $ hg debugobsolete |
53 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob) | 53 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob) |
54 3e30a45cf2f719e96ab3922dfe039cfd047956ce 0 {e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf} (*) {'user': 'test'} (glob) | 54 3e30a45cf2f719e96ab3922dfe039cfd047956ce 0 {e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf} (*) {'user': 'test'} (glob) |
55 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob) | 55 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob) |
56 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob) | 56 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob) |
57 | |
58 With some node gone missing during the edit. | |
59 | |
60 $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan | |
61 $ echo "pick `hg log -r 6 -T '{node|short}'`" >> plan | |
62 $ echo "edit `hg log -r 5 -T '{node|short}'`" >> plan | |
63 $ hg histedit -r 'all()' --commands plan | |
64 Editing (49d44ab2be1b), you may commit or record as needed now. | |
65 (hg histedit --continue to resume) | |
66 [1] | |
67 $ hg st | |
68 A b | |
69 A d | |
70 ? plan | |
71 $ hg commit --amend -X . -m XXXXXX | |
72 $ hg commit --amend -X . -m b2 | |
73 $ hg --hidden --config extensions.strip= strip 'desc(XXXXXX)' --no-backup | |
74 $ hg histedit --continue | |
75 $ hg log -G | |
76 @ 9:273c1f3b8626 c | |
77 | | |
78 o 8:aba7da937030 b2 | |
79 | | |
80 o 0:cb9a9f314b8b a | |
81 | |
82 $ hg debugobsolete | |
83 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob) | |
84 3e30a45cf2f719e96ab3922dfe039cfd047956ce 0 {e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf} (*) {'user': 'test'} (glob) | |
85 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob) | |
86 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob) | |
87 76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (*) {'user': 'test'} (glob) | |
88 2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob) | |
89 49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (*) {'user': 'test'} (glob) | |
90 46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob) | |
57 $ cd .. | 91 $ cd .. |
58 | 92 |
59 Base setup for the rest of the testing | 93 Base setup for the rest of the testing |
60 ====================================== | 94 ====================================== |
61 | 95 |