Friday, November 18, 2011

Hackers Beware - SVN 1.6 vs 1.7

This morning I've been trying to debug why the "From Existing Checkout" option in DualitySvn isn't working on the office computer (despite it having worked on every other computer I've tested it on so far).

Apparently starting from SVN 1.7 (computer in question runs 1.7.1), the subversion developers have gone and changed the format of the internals of the .svn folders. Well, they were well within their rights to... after all, those folders are kindof "private metadata" that SVN uses, that we really shouldn't be dipping our toes into! Having said that, it was kindof convenient grovelling around in there in the past.

So back to the problem I was having. What I've been doing so far here is I've been digging around in the ".svn/entries" file, and grabbing the contents of line 5, which was the URL of the repository. That used to be quite a quick and efficient way of grabbing this info without having to fire up a separate process to read info out of a call to the SVN client. However, alas, it seems we can't do this anymore, so it looks like we'll have to rely on using the aforementioned method to work around this for SVN 1.7.x+


In other news regarding DualitySVN, since the first release, I've been working on a few other features as I've come to need them over the year. These include:

  • Linux support
    • There's now a shell-script launcher, though it requires an environment var to be set which will point to the "installation" of the code. 
    • Fixed a bug with newlines not showing up (or in the right places) in the operation process dialog 
  • Added option to ignore external repositories when performing operations such as updating
    • Especially on large projects such as Blender, we now have several "external" repositories linked in (namely addons and translations), which end up adding time on to updates. However, for my purposes, they are generally useless (especially the translation updates, which I've also got disabled for my builds to save time and diskspace!), so this option allows disabling both.
Also, although I wasn't originally planning on including an SVN log viewer, I've increasingly been working on repositories without a fancy web interface for viewing logs and changes in! This was certainly not the case at the start of the project, but is now turning out to be a significant use case, so when I get the time (among all the other things I'm working on) setting up a nice log viewer will be on that list :)

No comments:

Post a Comment