##// END OF EJS Templates
rebase: properly handle --collapse when creating obsolescence marker...
Pierre-Yves David -
r17613:aafc5216 default
parent child Browse files
Show More
@@ -310,7 +310,10 b' def rebase(ui, repo, **opts):'
310 nstate[repo[k].node()] = repo[v].node()
310 nstate[repo[k].node()] = repo[v].node()
311
311
312 if not keepf:
312 if not keepf:
313 clearrebased(ui, repo, state)
313 collapsedas = None
314 if collapsef:
315 collapsedas = newrev
316 clearrebased(ui, repo, state, collapsedas)
314
317
315 if currentbookmarks:
318 if currentbookmarks:
316 updatebookmarks(repo, nstate, currentbookmarks, **opts)
319 updatebookmarks(repo, nstate, currentbookmarks, **opts)
@@ -656,12 +659,17 b' def buildstate(repo, dest, rebaseset, co'
656 state.update(dict.fromkeys(detachset, nullmerge))
659 state.update(dict.fromkeys(detachset, nullmerge))
657 return repo['.'].rev(), dest.rev(), state
660 return repo['.'].rev(), dest.rev(), state
658
661
659 def clearrebased(ui, repo, state):
662 def clearrebased(ui, repo, state, collapsedas=None):
660 """dispose of rebased revision at the end of the rebase"""
663 """dispose of rebased revision at the end of the rebase
664
665 If `collapsedas` is not None, the rebase was a collapse whose result if the
666 `collapsedas` node."""
661 if obsolete._enabled:
667 if obsolete._enabled:
662 markers = []
668 markers = []
663 for rev, newrev in sorted(state.items()):
669 for rev, newrev in sorted(state.items()):
664 if newrev >= 0:
670 if newrev >= 0:
671 if collapsedas is not None:
672 newrev = collapsedas
665 markers.append((repo[rev], (repo[newrev],)))
673 markers.append((repo[rev], (repo[newrev],)))
666 if markers:
674 if markers:
667 obsolete.createmarkers(repo, markers)
675 obsolete.createmarkers(repo, markers)
@@ -173,3 +173,52 b' set.'
173
173
174 $ cd ..
174 $ cd ..
175
175
176 collapse rebase
177 ---------------------------------
178
179 $ hg clone base collapse
180 updating to branch default
181 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
182 $ cd collapse
183 $ hg rebase -s 42ccdea3bb16 -d eea13746799a --collapse
184 $ hg log -G
185 @ 8:4dc2197e807b Collapsed revision
186 |
187 | o 7:02de42196ebe H
188 | |
189 o | 6:eea13746799a G
190 |\|
191 | o 5:24b6387c8c8c F
192 | |
193 o | 4:9520eea781bc E
194 |/
195 o 0:cd010b8cd998 A
196
197 $ hg log --hidden -G
198 @ 8:4dc2197e807b Collapsed revision
199 |
200 | o 7:02de42196ebe H
201 | |
202 o | 6:eea13746799a G
203 |\|
204 | o 5:24b6387c8c8c F
205 | |
206 o | 4:9520eea781bc E
207 |/
208 | x 3:32af7686d403 D
209 | |
210 | x 2:5fddd98957c8 C
211 | |
212 | x 1:42ccdea3bb16 B
213 |/
214 o 0:cd010b8cd998 A
215
216 $ hg id --debug
217 4dc2197e807bae9817f09905b50ab288be2dbbcf tip
218 $ hg debugobsolete
219 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 {'date': '*', 'user': 'test'} (glob)
220 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 {'date': '*', 'user': 'test'} (glob)
221 32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 {'date': '*', 'user': 'test'} (glob)
222
223 $ cd ..
224
General Comments 0
You need to be logged in to leave comments. Login now