• Each command duplicates it's setup stuff (testing for svn). Going to funnel them all through here.
SVN had a wig out on the last commit, the 'untitled folder' should have been named 'bin'
• Rename the commit command and update the actual tmCommand.
New module that will be the basis of *all* svn commands. 

At the moment it just provides `Subversion.run()` which takes arguments to pass to the svn binary. If an error occurs, `exit_with_tool_tip` is called with the error text, otherwise the stdout is returned. 
 '' 'Support/bin/bootstrap.sh' 
Revert of 9611 (unintentional commit)
• Execute the script in the background and send output to /dev/null

This is required because of async tm_dialog usage. This should be improved to check the return code of what was executed and act accordingly in the future.
• Cleanup of the commit commands.

The actual meat is is the CommitTransaction class, with the commit.rb file just being a script that calls CommitTransaction in different ways depending on the arguments it receives.
• Class that represents what `svn status` indicates.

The status information is calculated by parsing XML output of svn, opposed to pushing the normal output through REs, which should hopefully keep us safe for any language that svn is running in.

At the moment this is only suitable for using with the commit command. This will be used for *all* status getting when the revamp is done though.

The mapping of status codes is probably not correct at this point in time.
• More cleaning up of commit stuff.

The major change is that we use the new Subversion::StatusListing class to inspect the state of what we want to copy. Subversion.status() now returns an object of this new class.

The old commit_status_helper is gone and replaced with commit_helper that uses Subversion::StatusListing as well. 

The options in commit.rb are no longer global. Since we refactored this to separate into commit_transaction it is no longer needed. 

The CommitWindow is now opened with TextMate::Process.run().
• Obsoleted by commit_helper.rb
• Add support for all possible status codes (I hope).

The `svn help status` output and the schema definition @ http://svn.collab.net/viewvc/svn/trunk/subversion/svn/schema/status.rnc?revision=29540&view=markup formed the reference for this.
• If the status we get is unknown, return '' instead of 'K' as 'K' has some significance with svn.
• If svn encounters an error, print the error to stderr (instead of stdout)
• Removed more redundancy
• Facilitate getting the list of paths as relative to an arbitrary path.

In the status xml, if an absolute path was passed to svn status, the paths are absolute. We need a way to convert them to relative
• [commit_result] - Abstraction of the result of a commit operation.

svn commit does not support xml output so we don't have a truly language safe way of parsing it's output. By abstracting a commit result into a class we can hopefully deal with any issues with non english usage in a sane manner.

• [commit.rb] - change HTML output option to TM.

There was nothing HTML at all about what happened when HTML was specified as the output format. Possibly a hangover from some old functionality?

• [commit.rb] - Remove 'terminal' output option (was not used anywhere)

• [commit.rb] - Display informational alerts instead of simple notifications for; trying to commit without any modifications, and the actual commit result.

This seems more correct and aesthetically pleasing to me. If there is objection I will change it back.

• [commit_transaction] - Make paths in the commit window relative to the base of the commit.

• [subversion] - Return a CommitResult object from the commit() method.

• [commit_transaction] - Return a CommitResult object from the commit method.
• Route all TM commands through ‘tmsvn_bootstrap.sh’ which asserts that we have svn and sets TM_SVN (if not set). It in turn calls ‘tmsvn.rb’ which launches the _actual_  ruby script to do the work.

So why all the indirection? 

‘tmsvn_bootstrap’ prevents us from having to put ‘require_cmd svn’  in each command in TM.

The actual scripts that do the work need to be launched in the background. Otherwise, the TM GUI locks up and we can't interact with it for the duration of the script. If we just launched the _actual_ script in background then any errors that occurred would not be represented which would be extremely confusing for users. So the bootstrap launches ‘tmsvn.rb’ in the background which throws alerts if the actual script that it launches runs into problems.
• Missed this guy last commit
• Making detaching optional.

Some svn commands don't need to run in the background. To support this, tmsvn_bootstrap (and therefore also tmsvn) will detach the command if the _first_ argument is '-d'.
• Tidy up of the remove command.

This consolidates the previous command (called from TM) and script (called from the status listing) into one. The previous versions used CocoaDialog and some weird applescript t present dialogs. We now use TextMate::UI.