I wrote a program to do better merges as a replacement for diff3. I'd
like to hear some advice on whether to release it GPL and find out if
anyone would like to work on it. I know this isn't exactly the right
place to ask, but my program would be most likely used with svn.
Suggestions on other places to ask are welcome.
The merge algorithm can do things like correctly merge the renaming of
a class and adding a function in C++, so that the added function has
the new class name for the classname:: . Also, if one branch has coded
added, and the other branch renames a veriable, when the added code is
merged it will use the renamed variable. If you create clones of
functions, changes to the original will be merged into both.
The algorithm has no semantic or syntactic knowledge of C++ or any
other language. Even newlines have no special meaning to it. That
means that I didn't specifically program in how to rename a class or a
variable. The program just looks at how the text changes and
propogates those changes to the other branch.
I am considering making this project open source. I've never really
worked on an open source project before. The determining factor for
whether I release my program under the GPL is whether I get anything
from it. I would be pleased if I could even get some other developers
to work on it. As it is now, I'll barely use it, and I doubt anyone
else will either. Ideally releasing it under the GPL would fix that.
Right now the program compiles and runs in Windows (through VC++ 7)
and Linux (through g++). It takes 3 arguments similar to diff3, myfile
oldfile yourfile. I have a test suite of 11 exampe merges it performs.
You can see a couple of them on my blog, bluelightning32.blogspot.com.
The program needs more testing and some optimization. It should
probably be ported away from some of my personalized classes and
I wrote a short design doc before I started writing the program. It's
a little out-dated, but anyone who reads it will quickly get an idea
of how it works. The program can output graphs in Graphviz format of
how it's interpretting a set of versions and their merged result. This
is very helpful for debugging.
If it helps to make a decision, I can send out the design doc, test
cases, graphs, and code.
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Mon Jul 25 23:51:01 2005