On 13 August 2010 05:00, Peter Simons <[email protected]> wrote: > > I'm not sure what your point is. Are you saying that Git cannot > determine the set of branch heads that are reachable from any given > commit? >
I think it boils down to you thinking of sets of parents like git uses, in which no parent is special, vs Yuri thinking of lists of parents like I assume monotone uses, where the "first" parent is somehow special. (See this post on the git list: <http://marc.info/?l=git&m=116125732226063&w=2>) This ends up having implications on the complexity of the history DAG: if one of the parents is special, you often can't do a fast-forward merge, but instead have to have a merge node saying that you merged branch B into branch A, even though the result of that merge is exactly the same content as the head of branch B. Where does this come up? Suppose something happens to your "official" repo. This can be Linus going on vacation, the server going down, etc. With the git approach, you just designate (as a social process) some other repository to be the "official" one until he comes back or while you fix it. When Linus gets back or you bring the server online, it can pull from the temporary one without creating a "Merge in everything done while Linus was on vacation/the server was broken" node that provides no consequential information. (Example from <http://marc.info/?l=git&m=116114254612584&w=2>) _______________________________________________ nix-dev mailing list [email protected] https://mail.cs.uu.nl/mailman/listinfo/nix-dev
