Question

I have an SVN repository which was originally created using SVN 1.6. As far as I know, the repo is still 1.6 - I haven't upgraded it or asked the hosting provider to do so (although I know they run SVN 1.8 these days).

I have working copies of this repo on Windows (using TortoiseSVN) and OSX (using XCode command-line tools).

I just updated to XCode5 and now have SVN client 1.7 on my Mac, which tells me I must upgrade my working copy. But this has me confused - can I have a 1.7 WC on this machine and a 1.6 WC on another?

Does the fact my WC is 1.6.x mean this is the repo version?

I'm worried that if I update my repo tot he latest version (1.8) I won't be able to use it with a 1.7 client. Also that if I update TortoiseSVN to the newer version, it will only let me use repos that are 1.8... I don't want to upgrade the wrong thing or in the wrong order and break something.

A clarification how the different things fit together and what is backwards compatible is requested.

Was it helpful?

Solution

For now, you can use almost any client version of Subversion against any server version of Subversion. Your Server can be at version 1.6 and your client can be at 1.8, or visa versa. It doesn't matter.

However, you are not suppose to use a working directory created with one Subversion client with a second Subversion client because there is no guarantee that these two clients will understand the layout of the working directory.

Throughout most of Subversion's history, this rule was blithely ignored. The standard Subversion library created a standard working directory layout, and most clients simply used that. I've even seen people put their working directory in Dropbox and share it among Macs, Linux, Windows, and Cygwin clients.

This laxidasical way broke when Subversion 1.7 came out. Before 1.7 the .svn directories were scattered throughout the working copy -- one for each directory. In Subversion 1.7, this was no longer the case. The .svn directory is only in the root of the working directory. That meant that a Subversion 1.6 client could not share a working directory with a Subversion 1.7 client.

When Subversion 1.8 came out, again the standard format changed, and working directory checked out by a Subversion 1.7 client can no longer work against a 1.8 client.

In theory, you still shouldn't use different clients when accessing a working directory, but most clients still use a similar format. What you definitely cannot do any more is use different versions of Subversion clients with the same working directory.

Between client Subversion 1.6 and Subversion 1.7, there was a way to update the working copy, but I usually recommend just to checkout a new copy if you can. Even if you do upgrade the working copy, I recommend that you checkout a clean version when you finish your work.


Recap

  • The version of the Subversion client you use can work on almost any version of the Subversion repository.
  • You can no longer use different versions of Subversion clients on the same working directory. I recommend doing a fresh and clean checkout instead of using svn upgrade when possible. Even if you use svn upgrade, I recommend checking out a clean copy once all work has been completed.

OTHER TIPS

  • Does the fact my WC is 1.6.x mean this is the repo version?
    No

  • can I have a 1.7 WC on this machine and a 1.6 WC on another?
    Yes, you can.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top