[Nix-dev] Re: DVCS - what we care about?

me22 me22.ca at gmail.com
Fri Aug 13 18:02:53 CEST 2010


On 13 August 2010 05:00, Peter Simons <simons at cryp.to> 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>)



More information about the nix-dev mailing list