This has had surprisingly little conversation, so: Jean-Philippe, Anders & Petter wrote: > There should be no conflicting patches!
I don't believe that this is true. Conflicts (and dependencies) are a useful part of this sort of version control system, IMHO. The approximation that a patch that touches a line depends on or conflicts with others that touch the same line is quite often true and is useful for the user to be informed of. In my experience, it has offered a reasonable approximation of the actual dependencies between two patches. There are situations in which it the dependency/conflict is unsuitable, of course, and some of these could be corrected. One of the primary examples is that of an indentation or other non-meaning-changing whitespace alteration. I occasionally find myself intentionally leaving some code incorrectly indented, in order to not cause artificial dependencies. However, I feel that the answer to this would be to introduce an indentation/whitespace patch type. Other, similar problems have similar answers. The problems Darcs has with conflicts are unlikely to be due to the decision that patches can conflict or depend on each other; it is more likely that the way Darcs handles conflicts is insufficient. > all patches commute. Why should all patches commute, if the external representation still has the same conflicts as the current Darcs representation? Further, if you do have missing patches, I believe you can no longer present the user with a reasonable view of the changes. For example, if the user pulls a patch that changes a line from "a" to "b" and another that changes the same line from "c" to "d", what could they be told or do? > As part of a master-level project, two students of mine have implemented > this idea in a prototype [1], and the report can be found here [2]. The report was quite interesting and quite clearly explained why other version control systems have trouble with merges that are trivial under the new system and Darcs. However, it did not seem to present real world examples of the effects of the new patch representation. For example, is the user warned when they try to combine a patch from a file with lines (a,e) to a file with lines (a,c,e) with a patch that goes from (a,e) to (a,n,t,e)? It is a intuitively a conflict, but my impression is that the conflict-free RCS will give a file with lines (a,n,c,t,e), without warning. Regards, Grant Husbands. _______________________________________________ darcs-users mailing list darcs-users@darcs.net http://lists.osuosl.org/mailman/listinfo/darcs-users