422,946 Members | 1,155 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 422,946 IT Pros & Developers. It's quick & easy.

svn: Expected FS format '2'; found format '3'

pbmods
Expert 5K+
P: 5,821
I maintain a couple of web servers, and they synchronize changes via SVN with the development server.

The development server was running SVN v1.5.4, and the production servers were running SVN v1.5.2, and everybody was happy.

Adding a new site to the production servers was an easy task:
Expand|Select|Wrap|Line Numbers
  1. > ssh admin@production-server
  2. > svn co svn+ssh://user@development-server/path/to/svn/repos/domain.com
  3. A domain.com/www
  4. A domain.com/public_html
  5. ... snip ...
  6. Checked out revision 1
  7.  
This morning I noticed a rather cryptic (and consistent) error when trying to check out new repositories:

Expand|Select|Wrap|Line Numbers
  1. > ssh admin@production-server
  2. > svn co svn+ssh://user@development-server/path/to/svn/repos/domain.com
  3. svn: Expected FS format '2'; found format '3'
  4.  
I did some research, and I think this is the explanation:

When Subversion developers change the way SVN organizes files/data inside of a repository, they create a new format number. In essence, it's like a version number, except that it only applies to the way SVN repositories are laid out.

Different versions of SVN support different repository formats, with later versions supporting bigger repository formats (e.g., SVN 1.5.x can support formats 1-4, SVN 1.6.x can support format 5).

So far so good. What's weird, though, is that FS format 2 is (as far as I can tell) a SVN 1.4.x format.

Which is weird because, as mentioned above, both servers are running SVN 1.5.x.

After roughly 3 hours of troubleshooting, I finally found a workaround:

Expand|Select|Wrap|Line Numbers
  1. > cd /path/to/svn/repos
  2. > mv domain.com domain.com.old
  3. > svnadmin create --pre-1.5-compatible domain.com
  4. > svnadmin dump domain.com.old | svnadmin load domain.com
  5. ... SVN transfers the repository contents ...
  6.  
  7. > ssh admin@production-server
  8. > svn co svn+ssh://user@development-server/path/to/svn/repos/domain.com
  9. A domain.com/www
  10. A domain.com/public_html
  11. ... snip ...
  12. Checked out revision 1
  13.  
Note the --pre-1.5-compatible in the svnadmin create command above. Pre-1.5 compatible. As in compatible with 1.4. Because the server running SVN 1.5.2 can't seem to cope.

What's really confusing me is that any working copies that were already checked out on the production servers are still working. I can svn update, etc., and everything just works. I'm only running into trouble trying to check out new repositories.

I have no idea what I could possibly have done to change this, and I am now thoroughly confused.

Please point out the one thing I haven't considered that will fix everything! (:

Thanks for your time.
Apr 23 '09 #1
Share this Question
Share on Google+
1 Reply


P: 1
Thank you for the very useful post. I was able to import my old versopm repositories in to the new version. Haven't created a new repository yet, am using TortoiseSVN. Did you ever manage to work out what was stopping it?
Dec 8 '09 #2

Post your reply

Sign in to post your reply or Sign up for a free account.