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"""