You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Srinivas Kotla <sk...@broadsoft.com> on 2007/07/13 19:22:24 UTC

Doing an svn ls can change back-end db (when using BDB)?

Hi,

This is what happened to me today.  Our server (linux) was running
subversion 1.3.2 with BDB 4.3.  I installed subversion 1.4.4, BDB
4.4.20, apache 2.0.59 (couldn't get 2.2.4 working, a different story).
I started up the new httpd server on port 8080.  I did an "svn ls" on
our code repository using the new httpd server.  Immediately after that,
that repository became inaccessible to svn 1.3.2.

 

I reproduced it here:

 

[subversion@sklinux tmp]$ /opt/subversion-1.3.2/bin/svnadmin create
--fs-type bdb repos132

 

[subversion@sklinux tmp]$ /opt/subversion-1.3.2/bin/svn mkdir
file:///tmp/repos132/trunk -m "Creating dir using svn 1.3.2"

 

Committed revision 1.

 

[subversion@sklinux tmp]$ /opt/subversion-1.3.2/bin/svn ls
file:///tmp/repos132 trunk/

 

[subversion@sklinux tmp]$ /opt/subversion-1.4.4/bin/svn ls
http://sklinux/svn132

trunk/

 

[subversion@sklinux tmp]$ /opt/subversion-1.3.2/bin/svn ls
file:///tmp/repos132 svn: Unable to open an ra_local session to URL

svn: Unable to open repository 'file:///tmp/repos132'

svn: Berkeley DB error for filesystem /tmp/repos132/db while opening
environment:

DB_VERSION_MISMATCH: Database environment version mismatch

svn: bdb: Program version 4.3 doesn't match environment version

 

-- 

<http://www.broadsoft.com/images/r1c1.gif> 

  <http://www.broadsoft.com/images/r1c1.gif> 

<http://www.broadsoft.com/images/r1c1.gif> 
<http://www.broadsoft.com/images/r1c1.gif> 

Srinivas Kotla | BROADSOFT Inc. 

P| 240.364.5260  Email| skotla@broadsoft.com
<ma...@broadsoft.com> 
Mail| 220 Perry Parkway | Gaithersburg | MD 20877

 


Re: Doing an svn ls can change back-end db (when using BDB)?

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jul 13, 2007, at 14:22, Srinivas Kotla wrote:

> This is what happened to me today.  Our server (linux) was running
> subversion 1.3.2 with BDB 4.3.  I installed subversion 1.4.4, BDB
> 4.4.20, apache 2.0.59 (couldn't get 2.2.4 working, a different story).
> I started up the new httpd server on port 8080.  I did an "svn ls" on
> our code repository using the new httpd server.  Immediately after  
> that,
> that repository became inaccessible to svn 1.3.2.
>
> I reproduced it here:
>
> [subversion@sklinux tmp]$ /opt/subversion-1.3.2/bin/svnadmin create
> --fs-type bdb repos132
>
> [subversion@sklinux tmp]$ /opt/subversion-1.3.2/bin/svn mkdir
> file:///tmp/repos132/trunk -m "Creating dir using svn 1.3.2"
>
> Committed revision 1.
>
> [subversion@sklinux tmp]$ /opt/subversion-1.3.2/bin/svn ls
> file:///tmp/repos132 trunk/
>
> [subversion@sklinux tmp]$ /opt/subversion-1.4.4/bin/svn ls
> http://sklinux/svn132 trunk/
>
> [subversion@sklinux tmp]$ /opt/subversion-1.3.2/bin/svn ls
> file:///tmp/repos132 svn: Unable to open an ra_local session to URL
>
> svn: Unable to open repository 'file:///tmp/repos132'
>
> svn: Berkeley DB error for filesystem /tmp/repos132/db while opening
> environment:
>
> DB_VERSION_MISMATCH: Database environment version mismatch
>
> svn: bdb: Program version 4.3 doesn't match environment version

That's to be expected. As soon as you accessed the repository using  
Subversion 1.4 with BerkeleyDB 4.4 it upgraded the database tables to  
BDB 4.4 format, which you can't access from BDB 4.3 or earlier. If  
you would now like to access your repository from BDB 4.3 again, you  
will have to svnadmin dump it with Subversion 1.4 / BDB 4.4 and  
svnadmin load it using Subversion 1.3 / BDB 4.3.

Note that this problem would not have occurred had you used a  
Subversion 1.4 client to talk to a Subversion 1.3 server accessing  
the repository, using any of the network protocols (http://, svn://,  
etc.). It only occurred in your reproduction recipe because you used  
a Subversion 1.4 client to directly access an older repository using  
the file:/// protocol. And it occurred for you initially because you  
used a Subversion 1.4 server to access the repository.

It actually has nothing to do (AFAIK) with the version of Subversion,  
and everything to do with the version of BerkeleyDB. If you want to  
switch from a newer to an older version od BDB, you definitely have  
to dump and load.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org