Search code examples
svnupgradesvnadmin

How do I know which version current svn repository is?


Recently, I made a decision to upgrade my svn repository from v1.5 to v1.6. After I run the upgrading command then I saw the message left in CMD windows.

D:\svn>svnadmin upgrade repo
Repository lock acquired. 
Please wait; upgrading the repository may take some time...

Upgrade completed.

D:\svn>_

Ya!! It seems great... but.... How do I know which version current repository is? Is it upgraded to v1.6 or still is v1.5. There are few repositories I have. How can I find out their version?


Solution

  • Take a look into the file 'format' in your repository-path. It should contain the schema of your repository. Since Subversion 1.4 that is 5 and will probably not changing before Subversion 2. As long as the schema don't change a 'svnadmin upgrade' is unnecessary.

    To cite http://svn.apache.org/repos/asf/subversion/trunk/notes/repos_upgrade_HOWTO:

    Anyone upgrading between versions of subversion that have different
    repository schemas.  Schema versions are as follows:
    
        SUBVERSION VERSION NUMBER           SCHEMA VERSION
        -------------------------           --------------
        Up to and including 0.27            1
        0.28 - 0.33.1                       2
        0.34 - 1.3                          3
        (no released version used this)     4
        1.4 -                               5
    
    If necessary you can see which schema version your repository is
    currently using by looking at the format file in the repository.
    
    It should be noted that these changes are extremely rare.  Now that
    subversion has reached 1.0.0 our compatibility guarantees require
    forward and backward compatible repository formats for all patch
    releases and backward compatible for minor releases.  So until
    2.0.0 comes out there will be no change that should require a 
    dump for upgrading to newer versions.
    
    While Subversion does create version 5 repositories by default as of
    version 1.4, it still supports reading and writing version 3
    repositories for backwards compatibility.  Additionally, a pre-1.3
    client can communicate with a 1.4+ server accessing a version 5
    repository.
    

    Don't mix up the repository-schema with the one of the working-copy. The format-file in working-copy contains a '9' for current versions of subversion.