I upgraded to SVN 1.4

What should’ve been simple (“port install subversion“) took about two months. The reason for this is that the SVN working copy format changed in a backwards-incompatible fashion. The SVN team has always mentioned that the format would break it at some point, but many people just ignored those words of warning (mainly because there wasn’t exactly a convenient way to get the same information in another way with early subversion releases). So…

  • I had to buy an upgrade for IntelliJ IDEA, from version 5 to version 6, to use my IDE with SVN
    • (because IDEA uses SVNKit, a pure java replacement for the SVN client, written by a different developer team)
  • I had to fiddle for hours to get the security settings just right (I still haven’t found out exactly what broke, it has to do something with our certificate-based setup at work, I made sure to tell the SVN developers we employ around here since I don’t dare share details of our security measures; I hope one of them finds time to fix it)
  • I had to upgrade my custom blog software, xblog, since it, like SVNKit, also parsed the contents of .svn/entries. Here’s the patch.

Needless to say, I got consistently more unhappy during all of this. What I hated the most was having to fork out a bunch of money (of course, the company paid, but I’d rather see that cash go to the soccer table so badly desired by some) just to keep my trusted developer toolset working.

It’s also rather painful to note that the XML support in the subversion client still isn’t quite what you would expect out of a ‘normal’ XML tool. For example:

$ svn info --xml foo

<?xml version="1.0"?>

<info>

foo:  (Not a versioned resource)</info>

$ echo $?

0

$ # note how the error message does go to stderr properly

$ svn info --xml foo 2>/dev/null

<?xml version="1.0"?>

<info>

</info>

Much better would be if, in this case, --xml would return some kind of <error>, or at least would set the exit code to something that readily enables you to see there might be a problem. It doesn’t really matter for my little xblog script, but for a tool like gump, it seems likely to cause problems one way or another.