Skip to content

Topic/heptapod/multiple heads

Georges Racinet requested to merge topic/heptapod/multiple-heads into branch/heptapod

This provides an implementation for #2 (closed) and depends on !8 (closed) for the test to pass.

The principle is to avoid playing it too smart: we store wild heads in Git in a dedicated namespace, allowing us to implement their specific pruning logic, which boils down to "is this still a wild head?"

Caveat: it occurred to me after the fact that the proposed detection that a previously detected wild head is not a head anymore would probably give wrong results on partial pushes, because don't check that its children are part of the push. This wouldn't matter for the current way Heptapod uses it (full pushes from the Mercurial server-side depo to its Git counterpart), but if we deem it too dangerous that way, I wouldn't mind advice on how to check that efficiently.

Merge request reports