svnas a version control system with which I'll need to merge branches, but when I do, I use fmdiff.
$ brew install fmdiff
One minor annoyance -
fmmerge(used for interactive conflict resolution) doesn't work. The number of arguments passed to the script has changed since it was first written. I patched it locally, but it still didn't work. FileMerge was launched, I could edit files, etc; but it kept saying that the merge needed resolving. Instead, I just postpone all merge conflicts during the merge, and then use
svn resolveto resolve any individual merge conflicts.
 I like to branch by feature typically, but occasionally, branch by VCS is used.