Jake Scruggs

writes ruby/wears crazy shirts

I had a problem recently with TextMate's svn integration and finding the solution taught me some interesting things about Subversion and TextMate that I'd thought I'd share:

First -- TextMate fails with a non-helpful error message if you don't cache svn passwords. For a long time I didn't even realize that my two problems were related. I had to type in my username and password for svn every-time (even though I wasn't using svn+ssh). And TextMate exploded when I tried to see the svn log of a file. Turns out one causes the other -- obvious in retrospect.

Second -- Subversion keeps passwords and configuration files inside a .subversion folder inside the user's home directory. Try looking for a strangely named file inside ~/.subversion/auth/svn.simple for cached passwords. And there's a config file at ~/.subversion/config If you want to stop this caching of passwords you can set:
store-passwords = no
inside this file.

Third -- Subversion will fail to cache silently if the permissions are not right on the folder where it attempts to save the username/password. This was the sticking point for me -- everything I tried failed and I wasn't getting any helpful error messages (and none from the command line svn client) but then I noticed that my ~/.subversion/auth/svn.simple directory had different permissions (and a different modified time) than the other folders next to it. One simple chmod command later and I was caching passwords and using TextMate's svn integration like nobody's business.

Fourth -- Yes I still use Subversion -- feel free to leave me a comment telling how much happier I'd be with git.

Subversion and TextMate
Short version of Subversion's password caching
Longer version


josh said...

I would leave you a message telling you to use Git if I weren't already committed to leaving you a message telling you to use Bazaar. Use Bazaar!

Phantom said...

Very nicely said. Thanks a bunch.