Subversion Password Caching Problem Leads to TextMate svn Integration Problems

05 Aug 2008

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