What is the difference between 'svnmerge' (alias svnmerge.py, the python script that comes with svn) and 'svn merge' (Subversion 1.5's native merge-tracking)? Which one do you recommend?
svnmerge
is an external tool for "automatic branch management", whereas svn merge
is the basic tool for mergin branches in Subversion itself. As you don't tell what you want to do, it's a bit hard to recommend either.
Prior to 1.5, the Subversion merge
command didn't leave much information on which branches were reintegrated to the trunk, so svnmerge.py was written to make up for this lack of traceability.
Starting with version 1.5, meta-information is generated by svn at each merge, the svn:mergeinfo
property which is transparently appended to the target paths. You can appreciate that for example if you use TortoiseSVN, which can show you a graph.
This is not perfect yet though, as many would rightly say.
So you should see what your needs are, if the standard svn merge
is not enough for you, have a look at scripts like svnmerge
but in that case, make sure everyone uses the same tool.
In my experience, the standard option is more than enough in most cases.