Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Firstly, I am trying to reintegrate a branch with the trunk (using TortoiseSVN) but I am getting the error message "Querying merge info requires version 3 of the FSFS filesystem schema; filesystem E:/MyRepository/ uses only version 2".

Was it really not possible to reintegrate branches in earlier versions of subversion? Or is there another way of doing this?

Anyway, how can I upgrade the file system from version 2 to version 3?

share|improve this question

3 Answers 3

up vote 6 down vote accepted

You didn't specify the version of Subversion that your server is running. But based on the message you provided in the question, it's probably a 1.4.x version or older. I don't remember if there was an upgrade command provided or not for conversion from 1.4.x to 1.5.x, but the sure file way to get your repository from version 2 to version is to a dump and load. But that doesn't matter much, you'll want to install 1.6.x anyway to go with the latest. So, here are the steps you need to do:

  • Upgrade to Subversion 1.6.x if haven't already
  • Dump your existing repository using svnadmin dump
  • Create a new repo, call it _new
  • Load your new repo with the dump of the old using svnadmin load
  • Copy the uuid file from the old repository to the new repository
  • rename the old repository to _old
  • rename the new repository to

See also Subversion FAQ http://subversion.apache.org/faq.html#dumpload for a concrete example.

That should get you taken care of and the uuid file will keep your clients from freaking out. Do an svn update to be sure though.

share|improve this answer
2  
from svnadmin help load message: --force-uuid : set repos UUID to that found in stream, if any. In short: no need to play with files –  Hubert Kario Feb 3 '11 at 13:30
    
@Hubert Kario: Yeah, command line has that option. But not all the GUI clients do. And, if you can do it on the server side, that just makes it easier on the users. But I'll keep that switch in mind the next time I run into that problem. Thanks for the tip! –  jgifford25 Feb 4 '11 at 16:46
    
When creating your new repository, be careful about setting permissions. For example, if you are accessing the repository via apache mod_svn, apache runs under user "www", group "www" and you are logged in as "fred", you will probably need something like: sudo chown -R fred:www myrepository followed by a sudo chmod g+w to myrepository/db/repcache.db and myrepository/db/uuid –  xgretsch Mar 7 '13 at 10:58

Dump/load is not required for upgrading Subversion repositories. Use svnadmin upgrade command:

svnadmin upgrade <path-to-repos>

NOTE: svnadmin upgrade "performs only the minimum amount of work needed to accomplish this while still maintaining the integrity of the repository. While a dump and subsequent load guarantee the most optimized repository state, svnadmin upgrade does not." - see also svnadmin upgrade documentation

share|improve this answer
1  
NOTE, however, that this "performs only the minimum amount of work needed to accomplish this while still maintaining the integrity of the repository. While a dump and subsequent load guarantee the most optimized repository state, svnadmin upgrade does not." - see also svnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.upgrade.html –  Jörg May 3 '12 at 8:34
1  
NOTE, as well, that "you should always back up your repository before" using svnadmin upgrade, whereas with dump/load you kind of have your backup implicitly. –  Jörg May 3 '12 at 8:40
    
@Jörg Thanks! I've added your note to my reply. –  Ivan Zhakov May 5 '12 at 7:42

Ivan has a good tip that works, i tried it and it is very simple.

svnadmin upgrade <path-to-repos>

One thing i Missed in Ivans example that can be useful to others are:

Ex.

<path-to-repos> = C:\repos\theRepo
(ie. NOT C:\repos\theRepo\db)

Don't point svnadmin at the db directory, but the directory containing the db directory.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.