More TextMate subversion Ruby problems after recent upgrade

After the recent upgrade it seems that TextMate and Ruby are no longer friends.

Are you seeing errors like:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require’: /Applications/TextMate.app/Contents/SharedSupport/Support/lib/shelltokenize.rb:74: invalid multibyte escape: /[^\w_\-\+=\/\x7F-\xFF]/ (SyntaxError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require’ from /Applications/TextMate.app/Contents/SharedSupport/Bundles/Subversion.tmbundle/Support/format_status.rb:4:in `

I think I have a more permanent fix this time. If you read my previous post you sill see that the moving the current Ruby link is no longer working. Also, if you set the TM_RUBY variable, this too does not fix the problem.

Todays workaround is to update the PATH environment variable within TextMate to include Ruby 1.8 fist in the list.

To do this:

  1. Open TextMate
  2. Open the preferences pane  TextMate -> Preferences
  3. Select the Advanced tab
  4. Select Shell Variables
  5. Edit the PATH variable. Add to the beginning
    • /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin:
  6. Done.

Yosemite Update

See https://hootbah.co.uk/2014/10/22/textmate-1-on-yosemite/

Advertisements

TextMate svn log output problems

Since thew upgrade to Mavericks the output from the subversion log command in TextMate has not worked correctly. It seems that the problem is caused by a change to the xml output from subversion which the TextMate format log script is not picking up.

Essentially the problem is the encoding line has changed from utf-8 to UTF-8.

To fix the problem edit the file: /Applications/TextMate.app/Contents/SharedSupport/Bundles/Subversion.tmbundle/Support/format_log_xml.rb  To edit in TextMate this would be:

mate /Applications/TextMate.app/Contents/SharedSupport/Bundles/Subversion.tmbundle/Support/format_log_xml.rb

Change line 151 from:

if line =~ /^(.*)<\?xml version="1\.0"( encoding="utf-8")?\?>$/

to:

if line =~ /^(.*)<\?xml version="1\.0"((?i) encoding="utf-8")?\?>$/

The log format should be back.