rebase: make "successors" a set in _computeobsoletenotrebased()
There's no apparent reason for this variable to be a list and this
avoids converting it to a set when needed.
rebase: do not consider extincts for divergence detection (
issue5782)
Extinct obsolete changesets cannot cause divergence upon rebase. We
compute these obsoletes without a non-obsolete successor (extincts) in
_computeobsoletenotrebased() and then filter them out from the set of
obsolete revisions to rebase before getting into _checkobsrebase() to
check for divergence candidates.
rebase: add a test case for
issue5782
Issue 5782 reports that rebase incorrectly aborts when trying to rebase
an extinct revision (an obsolete revision with only obsolete successor).
We add a test to demonstrate this: the first "hg rebase" command aborts
with the divergence warning while, when allowing divergence, the rebase
completes and does not actually produce any divergence.
test: glob the temporary directory out of temporary file path
The temporary directory used by python might be outside of '/tmp/' (eg:
/dev/shm/) so we glob that part out.