If you’ve just upgraded your server to Subversion 1.5 or later,
there’s a significant risk that pre-1.5 Subversion clients can mess up
your automated merge tracking. Why is this? When a pre-1.5 Subversion
client performs svn merge, it doesn’t
modify the value of the svn:mergeinfo
property at all. So the subsequent commit, despite being the
result of a merge, doesn’t tell the repository about the duplicated
changes—that information is lost. Later on, when
“merge-aware” clients attempt automatic merging, they’re
likely to run into all sorts of conflicts resulting from repeated
merges.
If you and your team are relying on the merge-tracking features of
Subversion, you may want to configure your repository to prevent older
clients from committing changes. The easy way to do this is by
inspecting the “capabilities” parameter in the start-commit
hook script. If the client
reports itself as having mergeinfo
capabilities, the hook script can allow the commit to start. If the
client doesn’t report that capability, have the hook deny the commit.
We’ll learn more about hook scripts in the next chapter; see Implementing Repository Hooks and “start-commit” in Chapter 9 for details.