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