390

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?

bahrep
  • 29,961
  • 12
  • 103
  • 150

10 Answers10

494

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

2240
  • 1,547
  • 2
  • 12
  • 30
rogerdpack
  • 62,887
  • 36
  • 269
  • 388
340

Either

svn checkout url://repository/path@1234

or

svn checkout -r 1234 url://repository/path
pix0r
  • 31,139
  • 18
  • 86
  • 102
262

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)

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
42

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

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.

bahrep
  • 29,961
  • 12
  • 103
  • 150
9

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://machines@mywebsite.com/home1/oct/calc/calcFeatures.m@761 calcFeatures.m

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

Eric Leschinski
  • 146,994
  • 96
  • 417
  • 335
6

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

Documentation for this can be found here

Stuart Thompson
  • 1,839
  • 2
  • 15
  • 17
3

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.

system PAUSE
  • 37,082
  • 20
  • 62
  • 59
2

You'll have to use svn directly:

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

and

svn help co

gives you a little more help.

Sebastian
  • 8,046
  • 2
  • 34
  • 58
  • 2
    as far as what I see, i think an example can help. do you include or not include the brackets? what about 3 periods? what about the space after the 3 periods? Which characters are literal, and which are placeholders, and which are added characters for the placeholders? – ahnbizcad May 28 '15 at 20:36
2

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.

user1240259
  • 51
  • 1
  • 4
0

Go to folder and use the command:

svn co {url}
Eric Leschinski
  • 146,994
  • 96
  • 417
  • 335
jsduniya
  • 2,464
  • 7
  • 30
  • 45