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:
This morning I noticed a rather cryptic (and consistent) error when trying to check out new repositories:
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:
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.
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:
Code:
> ssh admin@production-server > svn co svn+ssh://user@development-server/path/to/svn/repos/domain.com A domain.com/www A domain.com/public_html ... snip ... Checked out revision 1
Code:
> ssh admin@production-server > svn co svn+ssh://user@development-server/path/to/svn/repos/domain.com svn: Expected FS format '2'; found format '3'
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:
Code:
> cd /path/to/svn/repos > mv domain.com domain.com.old > svnadmin create [b]--pre-1.5-compatible[/b] domain.com > svnadmin dump domain.com.old | svnadmin load domain.com ... SVN transfers the repository contents ... > ssh admin@production-server > svn co svn+ssh://user@development-server/path/to/svn/repos/domain.com A domain.com/www A domain.com/public_html ... snip ... Checked out revision 1
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.
Comment