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

Yury G. Kudryashov urkud+nix at ya.ru
Fri Aug 13 18:33:30 CEST 2010


me22 wrote:

> On 13 August 2010 02:44, Yury G. Kudryashov <urkud+nix at ya.ru> wrote:
>>
>> Suppose that you have two branches, "master" and "stdenv". As usual, you
>> merge master->stdenv every day or two and you merge stdenv->master every
>> month or two. Then it is not possible to search for commits that first
>> appeared in stdenv.
>>
Disclaimer: I use git, not mtn. I just try to explain Michael's point.
> 
> Who is "you" in this example?  It it possible to talk about "the"
> stdenv branch in a DVCS?

In monotone they recommend to choose unique names (like org.nixos.nixpkgs).

And their concept of a branch is quite different. It is just a subgraph in 
DAG, i.e. it is possible to have fork->merge inside one branch. Moreover, a 
branch can have many heads (and not all parents of a branch head belong to 
the branch).

In monotone any vertex of the DAG has one or more "certificates" (name=value 
pairs) attached, and one of the cert types is "branch name", hence every 
commit carries a "branch name" property. I never used a DVCS system other 
than git, so I don't know whether this information is usefull.

> What happens if the commit first appeared in
> the third branch, and was merged into master and stdenv separately,
> which were then merged?
Then this commit will have "third" branch name attached.
> 
> I don't know how even as a human I'd decide what came from where in a
> history like this:
> 
>     a   b   c
>      \ / \ /
>       d   e
>       |\ /|
>       f X g
>       |/ \|
>       h   i
>        \ /
>         j





More information about the nix-dev mailing list