Allow setting TM_SVN_DIFF_CMD to use a external diff command

Fixes #7.
Add Subversion::esc helper function

All paths passed to the svn command line tool should go through this function. Presently the only thing it does is to append a ‘@’ to the filename if the filename already contains one. This is required because subversion cuts any suffix matching /@[^@]*$/ and treats that as shorthand for the revision argument (-r).

Ideally svn would have an option to disable this behavior.
Remove all calls to ‘rescan project’

This is a no-op with TextMate 2.0.
Allow ‘@’ in filenames for Add, Commit, and Log

Doing a complete fix (for all commands) is very complicated as there is no ideal place to add this escaping.

Ideally we would escape at the level where we pass the paths to ‘svn’, but the current API simply provide an argument array that may contain things other than paths, and the commit window can also call ‘svn’ (e.g. for add and diff).

Given the decreased use of subversion and the rarity of ‘@’ in paths, I don’t think it’s worth investing the time to overhaul the bundle to better handle this issue.

Fixes #5.
Pass nil instead of an empty string if TM_SVN_DIFF_CMD is unset

Passing an empty string broke the ability to diff a single file and it rather diffed the entire project. Fixes issue raised in #8 and textmate/textmate#899.
Use version 1.8 of ruby for bundle items

10.7 and 10.8 only include ruby 1.8, so all bundle items have been written to work with that. Optionally supporting ruby 1.9 and 2.0 is problematic as these versions are not fully backwards compatible.

#ignore
Use 1.8 of ruby in a few missed places

Fixes #10.
Improve the “Find Next Conflict” macro bound to ⌃|

Pressing ⌃| when already at the start of a merge conflict will now find the next merge conflict (previously it would find the merge conflict “at the caret”).
Fix for the diff action in the commit window

Starting with mate 2.5 it will not read from standard input if the TM_DOCUMENT_UUID environment variable is set. This is unfortunate for commands launched by TextMate (where the variable is set) that use mate to pass data to TextMate (via mate’s stdin).

This fix is provisional until a new version of mate gets released.
Revert "Fix for the diff action in the commit window"

This reverts commit 124b963bf3226277a5973f4e5d2707976a215165.
Let actions in status window call the proper scripts

Previously revert, remove, and commit would all fail, fixes textmate/subversion.tmbundle#12

It seems that the status window code is from the old bundle, prior to the major refactoring done, and while new scripts had been created for the actions, no one was actually calling them.

I also removed setting ‘LC_CTYPE’ as that should no longer be an issue, additionally we now recommend calling ‘mate’ via the TM_MATE environment variable.
Point to ruby 1.8 shim

Using a shim allows us to catch when 1.8 of ruby is not present and provide other options.

#ignore
Let Subversion → Checkout fallback on home folder

If TM_DIRECTORY is unset then TM_FILEPATH would also be unset, causing an exception (dirname being called with nil).
Use TM_MATE environment variable (instead of raw ‘mate’)
merge from orig