views:

2047

answers:

3

We are using Subversion to keep track of our code. As part of the build process, some AssemblyInfo.cs files gets temporarily edited by the build script, and when the build is done they are reverted (also by the build script). However, one of our developers get this message when the revert is attempted:

The client is too old to work with working copy 'the path'. You need to get a newer Subversion client, or to downgrade this working copy.

We are all running the same version of Subversion (1.5.1). The only difference between the developer setups is that the user having the problem is using a later version of TortoiseSVN (1.6.0, as opposed to 1.5.x for the others), and we have been running Subversion 1.5.1 the whole time the repository has existed.

Do you have any hint on what the problem might be?

+2  A: 

TortoiseSVN 1.6 uses a newer version of the subversion client than 1.5. That's probably what's causing your error.

Another possibility is that the build script is using a different client.

John Meagher
+1; in general, always double-check the version used in your actual Subversion binaries, any supporting tools (such as TortoiseSVN) and any plugins in your IDE, and make sure you can get matching versions before upgrading anything
Rob
Thanks for that one (being investigated right now). I think the mistake might be that the user assumed that Tortoise is simply "wrapping" the installed svn client.
Fredrik Mörk
good call on the different tools being used. Trying to revert with (for instance) VisualSVN 1.5 won't work when checked out by Tortoise 1.6+
hometoast
Tortoise includes it's own SVN client, but it's embedded in a DLL instead of exposed as an svn.exe.
John Meagher
+9  A: 

Whenever any subversion client touches a working copy, the first thing it does is to silently update that working copy to its version.

TortoiseSVN will have done this, leaving the other subversion clients unable to reliably read the working copy.

This is true for all subversion clients in all versions (so far). Commandline, Tortoise, subclipse, ankh, rapidsvn - all behave the same.

There is a python script to downgrade a working copy, or you can just scrap it and start again with a new checkout. See the compatibility section of the release notes.

Tortoise generally follows the major release number of the subversion client it uses.

Edit:

In your case you're using 2 clients - tortoise and the commandline in the build script. The build script won't be able to work until it's updated to the latest version.

We have this problem ourselves.

Jim T
But in our case it's the other way around; the only client complaining is the one with the later version.
Fredrik Mörk
Is TortoiseSVN 1.6 complaining, or is anoter SVN client run by the same user with TortoiseSVN 1.6 complaining?
Lasse V. Karlsen
Never mind my comment; thinking backwards. You are perfectly right in that two clients are in use; both a command line client (1.5.1) and the one in Tortoise (1.6.x). I am pretty sure this is the issue.
Fredrik Mörk
A: 

Is there a way to use pre-commit hook scripts to get a clients version number and then check this against acceptable versions?

Cheers, Steve

You may want to post this as a separate question to make it more visible on the site; more answers coming that way, I would guess.
Fredrik Mörk