[darcs-users] Fwd: Towards a conflict-free revision control system.

Kari Hoijarvi hoijarvi at seas.wustl.edu
Fri Jan 16 14:30:53 UTC 2009


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



More information about the darcs-users mailing list