How to checkout a specific Subversion revision from the command line?

SvnCommand LineTortoisesvn

Svn Problem Overview


I want to checkout a specific revision of a folder in Subversion using the command line.

I don't see an option for specifying the revision number in TortoiseProc.exe,

TortoiseProc.exe /command:checkout <url>

How do I get the revision I want? Is TortoiseProc.exe the right tool for what I want to do?

Svn Solutions


Solution 1 - Svn

If you already have it checked out locally then you can cd to where it is checked out, then use this syntax:

$ svn up -rXXXX

ref: Checkout a specific revision from subversion from command line

Solution 2 - Svn

Either

svn checkout url://repository/path@1234

or

svn checkout -r 1234 url://repository/path

Solution 3 - Svn

Any reason for using TortoiseProc instead of just the normal svn command line?

I'd use:

svn checkout svn://somepath@1234 working-directory

(to get revision 1234)

Solution 4 - Svn

You should never use TortoiseProc.exe as a command-line Subversion client! TortoiseProc should be utilized only for automating TortoiseSVN's GUI. See the note in TortoiseSVN's Manual:

> Remember that TortoiseSVN is a GUI client, and this automation guide > shows you how to make the TortoiseSVN dialogs appear to collect user > input. If you want to write a script which requires no input, you > should use the official Subversion command line client instead.

Use the Subversion command-line svn.exe client. With the command-line client, you can

  • checkout a working copy in REV revision:
  1. svn checkout --revision REV https://svn.example.com/svn/MyRepo/trunk/

  2. svn checkout https://svn.example.com/svn/MyRepo/trunk/@REV

  • update your local working copy to REV revision:

    svn update --revision REV

  • export (i.e. download) a file or a development branch in REV revision:

  1. svn export --revision REV https://svn.example.com/svn/MyRepo/trunk/

  2. svn export https://svn.example.com/MyRepo/trunk/@REV

You may notice that with svn checkout and svn export you can enter REV number as --revision REV argument and as trailing @REV after URL. The first one is called operative revision, and the second one is called peg revision. Read SVNBook for more information about peg and operative revisions concept.

Solution 5 - Svn

svn checkout to revision where your repository is on another server

Use svn log command to find out which revisions are available:

svn log

Which prints:

------------------------------------------------------------------------
r762 | machines | 2012-12-02 13:00:16 -0500 (Sun, 02 Dec 2012) | 2 lines

------------------------------------------------------------------------
r761 | machines | 2012-12-02 12:59:40 -0500 (Sun, 02 Dec 2012) | 2 lines

Note the number r761. Here is the command description:

svn export http://url-to-your-file@761 /tmp/filename

I used this command specifically:

svn export svn+ssh://[email protected]/home1/oct/calc/calcFeatures.m@761 calcFeatures.m

Which causes calcFeatures.m revision 761 to be checked out to the current directory.

Solution 6 - Svn

I believe the syntax for this is /rev:<revisionNumber>

Documentation for this can be found here

Solution 7 - Svn

You could try

TortoiseProc.exe /command:checkout /rev:1234

to get revision 1234.

I'm not 100% sure the /rev option is compatible with checkout, but I got the idea from some TortoiseProc documentation.

Solution 8 - Svn

You'll have to use svn directly:

svn checkout URL[@REV]... [PATH]

and

svn help co

gives you a little more help.

Solution 9 - Svn

It seems that you can use the repository browser. Click the revision button at top-right and change it to the revision you want. Then right-click your file in the browser and use 'Copy to working copy...' but change the filename it will check out, to avoid a clash.

Solution 10 - Svn

Go to folder and use the command:

svn co {url}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionranjaView Question on Stackoverflow
Solution 1 - SvnrogerdpackView Answer on Stackoverflow
Solution 2 - Svnpix0rView Answer on Stackoverflow
Solution 3 - SvnJon SkeetView Answer on Stackoverflow
Solution 4 - SvnbahrepView Answer on Stackoverflow
Solution 5 - SvnEric LeschinskiView Answer on Stackoverflow
Solution 6 - SvnStuart ThompsonView Answer on Stackoverflow
Solution 7 - Svnsystem PAUSEView Answer on Stackoverflow
Solution 8 - SvnSebastian DresslerView Answer on Stackoverflow
Solution 9 - Svnuser1240259View Answer on Stackoverflow
Solution 10 - SvnjsduniyaView Answer on Stackoverflow