Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

svn client/server versions

If I understand correctly version of subversion defines:

  • A structure repository on server
  • A structure of working copy on client side
  • API between client and server

Once we've install svn server, we don't touch/upgrade it.

Things are more complex on client side.

On client side (Windows) we currently use tortoisesvn. It's version (correct me if I'm wrong) is corresponding to subversion version.

Now, we're going port our application to Linux and therefore we consider using additional svn clients (svn command line utility, Eclipse plugin and some GUI frontend).

Now the questions:

  1. Is it possible several different clients will work on the same checkout code? If yes thus it means that I need carrefully pick up version of clients to be used, since each client expects a particular format/data be found in .svn directory?

  2. What is the relationship between version of server and client side? If for example server side is 1.4 and client is 1.6, thus it means that some 1.6 features won't work?

  3. Is it true that version of subversion client is not nessessary corresponding to the version of subverions, such as of rapidsvn as opposed to tortoisesvn?
like image 741
dimba Avatar asked Oct 02 '09 09:10

dimba


2 Answers

I would strongly not recommend that you try to use different Subversion clients against the same checkout directory, especially if those are running on different platforms (ie. across a network). Subversion does platform-specific things with line endings on text files, and if you check out on Windows and then check in the same working copy with Linux (for example), you may accidentally touch every line of every file by adding spurious CRLF line endings.

If you are doing cross-platform development, set up a different checkout directory on each platform where you're doing development. If you must share changes before checking in, consider using Git and the git-svn gateway.

like image 141
Greg Hewgill Avatar answered Oct 07 '22 07:10

Greg Hewgill


  1. Working copy formats are major-version specific for the client (ie, don't try to use a 1.4 client on a WC created by a 1.6 client).

  2. Theoretically, old client/new server and vice-versa are OK, but the most testing gets done on same version (1.6.x - 1.6.x) scenarios. Generally you're OK to mix client/server versions, just new features won't be available with the older part (ie, mergeinfo is not available in 1.4 client talking to a 1.5 server, and commits from a 1.4 client would be missing that info). Again, best to stick with same major version, but you can get away with differences if necessary.

  3. Usually you can find the svn library version that a particular client was built against in the release notes.

like image 26
nitzmahone Avatar answered Oct 07 '22 09:10

nitzmahone