Is there any difference between the algorithm of how diff3
utility and svn merge
commands work? Does svn merge
use the same principle or some variation of how diff3
works? For example, diff3
does not automatically merge changes if mine and theirs files have the same content while svn up
or svn merge
does.
My question is also closely related to the automatic merging. How does it work? When conflict happens and when it does not? It's obvious that conflict happens when the same lines of source code have been edited, but there are cases when it is impossible to define merge context? How svn merge
defines it?
I've found following passage at the 'Copying Changes Between Branches' page from svn book:
...svn diff only outputs the limited patch-format, so there are some ideas it simply can't express. The svn merge command, however, can express tree-changes by directly applying them to your working copy
What are all those differences? I cannot find detailed info anywhere.