[prev in list] [next in list] [prev in thread] [next in thread] 

List:       darcs-conflicts
Subject:    Re: [darcs-conflicts] Conflict Resolution
From:       Grant Husbands <darcsconflicts () grant ! x43 ! net>
Date:       2006-03-07 23:50:55
Message-ID: 440E1C5F.5060602 () grant ! x43 ! net
[Download RAW message or body]

Terminology for this email as it diverges from accepted terminology:
Atom: Primitive patch (because I don't want to type primitive, lots).
Invariant Atom: Atom in minimal context with explicit dependencies.
Unmerge: Taking two consecutive atoms and making them parallel.

Ganesh Sittampalam wrote:
> In particular, not having a proper notion of inverses means that the 
> correspondence between merging and commutation no longer exists.

I think all DAG operations can be defined in terms of only merges and 
unmerges of atoms, if that helps. In fact, a commutation just looks like 
an unmerge followed by a merge, to me.

In a way, it would make sense if the fundamental operation for DAG-Darcs 
was a merge, rather than a commutation.

> We need commutation for unpull

We could define unpull as the creation of a new repository without the 
atom in question - then only merges are required. As we hope a 
repository is uniquely defined by the invariant atoms it contains, this 
shouldn't be a problem. Doing it any other way (through unmerges or 
commutation) could be deemed an optimisation (albeit a very useful one).

> The "commute it to the end of the list" is actually a merge operation. 
> In a commute, we start off with two sequential patches, but in a merge, 
> we start off with two parallel patches (patches which start at the same 
> place), and that's what we have here.

That's a fair point - I'll try to tighten up on my terminology.

> So we end up having a system with both merging and commutation, but 
> without inverses we cannot relate the two, or prove any nice properties 
> that end up giving us a consistency guarantee.

It does seem that inverses can be useful for proofs; I'm just not sure 
where they would fit in an implementation of a DAG-biased scheme. I'll 
admit that I'm out of my depth when it comes to arguing the mathematical 
properties of the operations and tend to hand-wave and think in terms of 
specific atom-types.

I'm going to have to give all this some more thought, but I'll throw 
this out, as is, to see whether it makes any sense to anyone else.

Regards,
Grant.

_______________________________________________
darcs-conflicts mailing list
darcs-conflicts@darcs.net
http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-conflicts
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic