Mercurial > hg
comparison hgext/rebase.py @ 27790:2d294dada4f8
rebase: small refactoring to allow better extensibility from extensions
Inhibit, one of evolve's extension, would like to change the way rebase works
with obsolete changesets. During a rebase with inhibit, the inhibition of the
obsolescence markers should be lifted for the rebase.
With this small refactoring, inhibit and can wrap the _filterobsoleterevs
function to lift inhibition cleanly and at the same time this change makes
rebases' code more legible.
author | Laurent Charignon <lcharignon@fb.com> |
---|---|
date | Thu, 14 Jan 2016 11:50:28 -0800 |
parents | f0e9f38d250f |
children | f54bf1f41566 |
comparison
equal
deleted
inserted
replaced
27789:63116d47cc3f | 27790:2d294dada4f8 |
---|---|
341 hint=_('use --keep to keep original changesets')) | 341 hint=_('use --keep to keep original changesets')) |
342 | 342 |
343 obsoletenotrebased = {} | 343 obsoletenotrebased = {} |
344 if ui.configbool('experimental', 'rebaseskipobsolete'): | 344 if ui.configbool('experimental', 'rebaseskipobsolete'): |
345 rebasesetrevs = set(rebaseset) | 345 rebasesetrevs = set(rebaseset) |
346 rebaseobsrevs = set(r for r in rebasesetrevs | 346 rebaseobsrevs = _filterobsoleterevs(repo, rebasesetrevs) |
347 if repo[r].obsolete()) | |
348 obsoletenotrebased = _computeobsoletenotrebased(repo, | 347 obsoletenotrebased = _computeobsoletenotrebased(repo, |
349 rebaseobsrevs, | 348 rebaseobsrevs, |
350 dest) | 349 dest) |
351 rebaseobsskipped = set(obsoletenotrebased) | 350 rebaseobsskipped = set(obsoletenotrebased) |
352 | 351 |
1186 """ensure rebased revs stay visible (see issue4505)""" | 1185 """ensure rebased revs stay visible (see issue4505)""" |
1187 blockers = orig(repo) | 1186 blockers = orig(repo) |
1188 blockers.update(getattr(repo, '_rebaseset', ())) | 1187 blockers.update(getattr(repo, '_rebaseset', ())) |
1189 return blockers | 1188 return blockers |
1190 | 1189 |
1190 def _filterobsoleterevs(repo, revs): | |
1191 """returns a set of the obsolete revisions in revs""" | |
1192 return set(r for r in revs if repo[r].obsolete()) | |
1193 | |
1191 def _computeobsoletenotrebased(repo, rebaseobsrevs, dest): | 1194 def _computeobsoletenotrebased(repo, rebaseobsrevs, dest): |
1192 """return a mapping obsolete => successor for all obsolete nodes to be | 1195 """return a mapping obsolete => successor for all obsolete nodes to be |
1193 rebased that have a successors in the destination | 1196 rebased that have a successors in the destination |
1194 | 1197 |
1195 obsolete => None entries in the mapping indicate nodes with no succesor""" | 1198 obsolete => None entries in the mapping indicate nodes with no succesor""" |