How to check out an older version in SVN?

14,331

Solution 1

Why not check out the old code into a different folder?

e.g.

c:\MySource\
c:\MyOlderSource\

However, if you want only one folder then merge is the correct way to do it. I don't know what you mean that merge will "update the latest version". It will update your working copy (the BASE version) but not the repository copy (the HEAD version), but that is exactly the behaviour you want.

Solution 2

From my understanding I believe that you would want to create at least one branch (maybe two if you want a development and a release branch)

So svn cp -r5 file:///path.to.repo/trunk file:///path.to.repo/branches/development would be a typical way of creating a branch from an old version of you code.

This basically copies how the trunk directory looked at revision 5 and puts that into a new location "branches/development"

Now I'm assuming that you setup your repository in the standard svn way (with trunk, branches and tags), regardless of this setup it is still possible to use this command.

You may also be interested in the svn switch command which allows you to switch your working copy from one area of the repository to another. Alternatively you could just checkout 2 workings copies (depends on how much disk space you require I guess)

Take a look at svn redbook for more information on commands etc. in svn: http://svnbook.red-bean.com/

Share:
14,331
Yotam
Author by

Yotam

Updated on June 04, 2022

Comments

  • Yotam
    Yotam almost 2 years

    I have two versions of my code I want to alternate between. If I run

    svn checkout -r 5 file:///path.to.svn.repo
    

    and the current version in the target directory is higher than 5, I can't go back. To my understanding, this is intentional, and I should use merge instead. Merge update the latest version, and I don't want that. Is there an easy way to alternate?

    I suppose I could split the code into two projects, but I'm not sure this is the right solution.

  • Yotam
    Yotam over 12 years
    Thanks. This is kinda my solution. I simply delete the local src folder and recreate it. Is there a way to checkout a specific file in a specific version? Is there a way to give this file version an intuitive name (such as runner, debugger etc.)?