[Update on issue 820 as of 7/31/07: “The main merge-tracking development branch has been merged into Subversion's trunk, and is slated for release in Subversion 1.5. Additional feature branches for various forms of auditing have also been in existence, all but one of which has also been merged into trunk.” Here's a link to the remaining issues for a 1.5 release].
I've finally gotten on board with checking out Subversion. At my current place of employ, we use CVSNT. I assumed for quite a while that CVSNT was some Windows-only bastardization of CVS, but have learned otherwise. One bit that it has which works really, really well, is MergePoint, something neither C V S nor Subversion (yet (issue 820)) has:
Ideally, your version control system should prevent the double-application of changes to a branch. It should automatically remember which changes a branch has already received, and be able to list them for you. It should use this information to help automate merges as much as possible.
Unfortunately, Subversion is not such a system. Like CVS, Subversion does not yet record any information about merge operations. When you commit local modifications, the repository has no idea whether those changes came from running svn merge, or from just hand-editing the files.
With CVSNT's MergePoint, you can merge multiple times from branch-to-trunk-to-branch any which way and it all just works. I reckon there may be some unusual cases to throw it for a loop, but with simple branching stuffs (a la the Prag VC book), it's a no-brainer.
For a CVSNT biased comparison to SVN, check this out. I'd be interested in knowing what a SVN savvy person thinks about the list. One thing I can't speak to is the CVSNT rename support, as that's in a recent version we haven't yet upgraded to.