Fix issue #1245: 'svn OP FILENAME' locks the whole tree for some operations.
Fix issue #1245: 'svn OP FILENAME' locks the whole tree for some operations.

Thanks to Mike for keeping my sanity in check.

* subversion/libsvn_client/commit.c

  (svn_client_commit): Stop recursively locking the working copy at the anchor.
    Instead non-recursively lock dirs that are ancestors to the targets and
    then recursively lock the targets themselves.

    Also fix a bug with respect to anchoring.  The selected anchor (base_dir)
    which would originally be locked recursively was one dir off in some cases.

  (remove_redundancies, adjust_rel_targets): New helper functions to
    help above Voodoo.

jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion