Support multiple heads
Currently, the Heptapod version of hg-git understands named branches and topics, and requires that there is a single head for a given branch/topic combination (including no topic, of course).
Indeed, on the Git side, we need a unique branch, for whatever we want to push. In otherwords, something unique in the refs/heads
namespace. So that's a technical requirement.
This is inline with Heptapod usage, in which we enforce upfront rejection of multiple heads, even if the user performs a forced push. This makes lots of sense functionally, as wild heads are always a problem, and it's safe to assume that they are a user error with the sane workflows that Heptapod implements.
On the other hand, there are cases where we would be happy to lift that functional requirement, at least temporarily for imports of older and bigger repositories:
- Some actually have several heads on old non-closed branches ; this is even true of my personal clones of Mercurial itself.
- it's very frequent to have several heads on closed branches.
- supporting several heads allows incremental import strategies: almost all repositories have had multiple heads conditions in the past, that they cured with subsequent merges.
See also heptapod#25 (closed)
(I have working code to finish testing and submit for that)