[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