On Wed, Aug 13, 2008 at 11:24:28AM -0600, Mark J. Nelson wrote: > > > Anyway, getting back to my original question: what is the rationale > > behind Mercurial allowing pulls that would result in more than two heads > > by default? When would this be the behavior a developer would want by > > default? > > Purely speculative, and with neither defense nor criticism of the > Mercurial model: I think it's because of the implied relationship between > repositories. The "parent" repository (the source of a pull or the > destination of a push) is considered authoritative. Effort is made to > protect that repository, ie cannot push multiple heads without a force > option. > > That makes pretty good sense for a branched development model, too. We > don't use that, but others may. And if you manage multiple releases via > branching, you shouldn't need to force a pull to get the contents of the > parent (or master) repo. But it might still be sensible to require force > to CREATE such a branch in the first place.
The way Meem stated the question to me was more specific -- why does a pull allow the creation of a second head in any branch. Your "authoritative" argument makes sense, but I agree with Meem -- I don't think it's a terribly useful model, unless those heads are branch heads. Danek