One of the greatest features of Subversion (and any other decent source control tool) is the ability to branch. Branching allows development to occur in parallel streams and allows changes to be safely propagated from one development stream to another. These features work well, but one often finds that developers forget to merge their changes back to the main development stream, or to use Subversion's terminology, developers forget to "merge back into the trunk." Now there are several...