On Tue, Nov 27, 2012 at 3:10 PM, Barbu Paul - Gheorghe
<barbu.paul.gheorghe_AT_gmail.com> wrote:
> On 11/27/2012 02:50 PM, Strake wrote:
> Hello,
>
>
>> Darcs has no history edition, as it essentially keeps no history,
>> which is a win in my book. The main difficulty seems to be the
>> corner-case exponential-time merge algorithm.
>>
>
> I'm not familiar with that VCS, but how can it store no history since that,
> I think, is the core of any (D)VCS, to have a history of changes, a
> versioning, that's its purpose, isn't it?
It stores a graph of the dependencies between patches.
When you commit, you just record a patch and the system figures out
the syntactic dependencies of your patch wrt the patches that already
are in the repo.
When you pull, you just download a set of patches and their dependency
relation. The two sets (downloaded and local) and the two relations
(same) are merged.
You can accept or refuse individual patches. When you refuse a patch,
all the patches that (transitively) depend on it are automatically
refused.
>
> I'm not an expert, I'm really curious about this.
There is a nice explanation of how it works on
https://en.wikibooks.org/wiki/Understanding_Darcs/Patch_theory
Cheers,
--
______________
Raphaƫl Proust
Received on Tue Nov 27 2012 - 16:18:57 CET