I'm aware that darcs' theory of patches is completely different from the "ingrown tree" model that git and mercurial use. But does this huge theoretical difference translate to any real difference in practice?
As far as I can tell, most user-visible differences should arise from the fact that non-conflicting merges are invisible in darcs, but explicit in git/mercurial. That is, if I pull two patches from uncoordinated sources, and they do not conflict, darcs will not add any additional information to the repository; with git or mercurial, even a "passive" developer who pulls these two patches will need to add an additional content-free patch to merge them. I suppose this might matter if you have multiple developers performing identical nonconflicting merges independently. In a situation like that, having each developer generating their own merge-patches could be bad, because then locally generated patches would seem to have different histories (ie include different mergers) when in fact the set of nontrivial patches in the history of each local change is identical. Is this understanding correct? Unfortunately, it seems like the case where the theory of patches offers an advantage happens to be precisely the case where darcs falls over because of exponential time problems. So perhaps there's actually no difference in practice. - a -- PGP/GPG: 5C9F F366 C9CF 2145 E770 B1B8 EFB1 462D A146 C380 _______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
