This has been an interesting thread, provoking some thoughts. Obviously, real conflicts are unavoidable, but even perfect merging of accidental conflicts could result in trouble.
Suppose I have some optimizations to do, and I add one line to call a profiler, happily running test suite and accidentally pushing that change to main repository. Obviously, my fellow friends Alice, Bob and Charlie are not very happy: They have a release build to make and profiler routines are not found by linker. Alice deletes my line, and pushes her changes. So does Bob. And Charlie. The line is now added once and deleted three times. Existence count = -2 When I pull Alice's changes, the patch deletes my profiler call. I add it back, but when I pull Bob's changes it goes away again. I pull Charlie's changes, and notice the line is missing. I add it back again, run tests, and record my change. The line goes away! At this point I'm probably calling my analyst or filing source control system bug. So if something is mathematically correct, it's not necessarily intuitive or useful. Good luck for you improving merging algorithms though! What really has happened: Darcs has made me dislike more and more text files as source storage method. So many conflicts I have in TortoiseDarcs 2 are just formatting issues, nothing else, and I'm just a solo developer with repositories in two machines. Getting rid of text would improve situation more than attempting to merge text right. For example whitespace formatting patches would simply go away. I saw an Intentional Programming demo at Microsoft in 1997. Unfortunately, Charles Simonyi has not been able to create a great product out of that. http://www.intentsoft.com/ is not where I wish it would be. Kari _______________________________________________ darcs-users mailing list darcs-users@darcs.net http://lists.osuosl.org/mailman/listinfo/darcs-users