How to fix ‘The client is too old to work with working copy’ error with Subversion
Recently when I was setting up a project in Teamcity for integration build (which runs nightly), the build failed saying
“svn: This client is too old to work with working copy ‘.’. You need to get a newer Subversion client, or to downgrade this working copy. See http://subversion.tigris.org/faq.html#working-copy-format-change for details.”
Background: We wanted an integration build that runs nightly for each of the repositories that we had. This nightly build will pull the source from the subversion server, build it and creates a zip package that contains the deployment files [.aspx, images, css, dll’s, etc.], adds and commits into a separate repository in Subversion. It also publishes into a shared folder from where we have a script that deploys the package automatically. To add the build package into subversion, the build script uses the ‘svn add’, using the <Exec> command and setting the ‘Working Directory’ attribute to versioned folder where the zipped file resides. For e.g
"C:\Program Files\VisualSVN Server\bin\svn.exe" add --force 2009.10.01_19.33.54.intg.Release.zip
As you might know, svn add works only on version’ed folders, i.e. to add a file successfully into subversion, that folder should be already versioned and checked out. The MSBuild script creates the zipped package in the following folder
Since this folder has been already checked out (manually, using Tortoise SVN client), the assumption was that the ‘SVN add’ should successfully add the file. But this didn’t happen and this is where we got the above error.
Solution: Upon analyzing we found that, we were using Visual SVN Server 1.6.3 and Tortoise SVN client 1.6.5 (which is latest as of Oct 2009) and the svn.exe of Visual SVN installation is older than the Tortoise SVN’s version. The “C:\Tools\TeamCity\BuildFolders\Deployment\intg” folder is checked out by Tortoise SVN client v1.6.5, but the ‘SVN add’ was using Visual SVN server v1.6.5 command line client, which is incompatible [because, the .svn folder will have the format of v1.6.5 and not v.1.6.3]. So the solution would be to use a compatible client. Unfortunately, Tortoise SVN client uses it’s own client library and there’s no equivalent of Visual SVN server’s command line interface. Hence I resorted to Silk SVN’s and solved the issue. I replaced the command as follows:
"C:\Program Files\SlikSvn\bin\svn.exe" add --force 2009.10.01_19.33.54.intg.Release.zip
And this time the build was successful and we were able to see the release package added into subversion properly.