Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 18:21:49 +0200] rev 17215
checkheads: extract branchmap preprocessing
The checkheads function is far too complicated. This extract help to explicite
what part of the preprocessing are reused by the actual check.
This the first step toward a wider refactoring.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 17:59:29 +0200] rev 17214
checkheads: take future obsoleted heads into account
If we push some successors they will likely create a new head on
remote. However as the obsoleted head will disappear after the push we
are not really increasing the number of heads.
There is several case which will lead to extra being actually pushed. But this
first changeset aims to be simple. See the inline comment for details.
Without this change, you need to push --force every time you want to
push a newer version which is very error prone.
The remote side still display +n heads on unbundle because it does not have the
obsolete marker at unbundle time.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 17:31:29 +0200] rev 17213
obsolete: add an any successors function
This function yield every nodes which succeed to a group of nodes.
The first user will be checkheads who need to know if we push successors for
remote extra heads.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 17 Jul 2012 18:14:16 +0200] rev 17212
checkheads: extract bookmark computation from the branch loop
No branch specific data are used in the computation of the bookmarked heads. We
can only compute it once.