We are running Subversion 1.5.4 on开发者_StackOverflow中文版 our clients and the server. Is it possible to upgrade directly from Subversion 1.5 to version 1.7? What steps are required to do that?
I read release notes
Compatibility Concerns
Older clients and servers interoperate transparently with 1.7 servers and clients. However, some of the new 1.7 features may not be available unless both client and server are the latest version. There are also cases where a new feature will work but will run less efficiently if the client is new and the server old.
There is no need to dump and reload your repositories. Subversion 1.7 servers can read and write to repositories created by earlier versions. To upgrade an existing server installation, just install the newest libraries and binaries on top of the older ones.
Subversion 1.7 servers use the same repository format as Subversion 1.6. Therefore, it is possible to seamlessly upgrade and downgrade between 1.6.x and 1.7.x servers without changing the format of the on-disk repositories. (This is not correct in general for any pair of 1.x and 1.y servers, but happens to hold for 1.6 and 1.7.) If new 1.7 features were enabled on the server (in the hooks or server configuration files), they will, of course, have to be disabled prior to reverting back to a 1.6 server.
Subversion 1.7 clients use a new working copy format. Subversion 1.7 clients cannot use Subversion 1.6 (and earlier) working copies. Existing working copies created with Subversion 1.6 and earlier need to be upgraded before they can be used with a Subversion 1.7 client
1.5 was updated transparently to 1.6, if my memory serves me well
From releasenotes also
Upgrading the Working Copy
Subversion 1.7 introduces substantial changes to the working copy format. In previous releases of Subversion, Subversion would automatically update the working copy to the new format when a write operation was performed. Subversion 1.7, however, will make this a manual step. Before using Subversion 1.7 with their working copies, users will be required to run a new command, svn upgrade to update the metadata to the new format. This command may take a while, and for some users, it may be more practical to simply checkout a new working copy.
Note: Subversion 1.7 cannot upgrade working copies that a 1.6 client would have refused to operate upon before an svn cleanup was run (with a 1.6 client). In other words, before upgrading to 1.7, a 1.6 client must be used to run svn cleanup on all working copies that require cleanup. We regret for this limitation, but we had to introduce it in order for 1.7 to ship timely and without overcomplicating the internals.
To complete the answer, it is right that 1.5 is updated transparently to 1.6. According to the 1.6 release note the only feature requiring a 1.6 repository is FSFS packing, see svnadmin pack
.
If you need packing for large repository performance, you have to run svnadmin upgrade
on each repository before using svnadmin pack
.
You may also be interested in my improved fsfs-reshard.py
script to estimate and tune shard sizes before packing and also to unpack a packed repository.
When we upgraded from SVN 1.6 to SVN 1.8, the SVN 1.8 client worked great for checking out and committing, but when trying to do a merge it would complain with this error:
svn: E200020: Invalid revision number '0' found in range list
This was because SVN 1.6 had put revision 0 in the svn:mergeinfo
properties, and the SVN 1.8 client did not allow this anymore.
We had to rewrite the entire SVN repository history and replace any mention of revision 0
with revision 1
in our svn:mergeinfo
properties. We wrote a svndumpapi to do this replacement.
精彩评论