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?
This question is related to
svn
command-line
tortoisesvn
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)
You'll have to use svn directly:
svn checkout URL[@REV]... [PATH]
and
svn help co
gives you a little more help.
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:
svn checkout --revision REV https://svn.example.com/svn/MyRepo/trunk/
svn checkout https://svn.example.com/svn/MyRepo/trunk/@REV
update your local working copy to REV revision:
export (i.e. download) a file or a development branch in REV revision:
svn export --revision REV https://svn.example.com/svn/MyRepo/trunk/
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.
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.
Either
svn checkout url://repository/path@1234
or
svn checkout -r 1234 url://repository/path
I believe the syntax for this is /rev:<revisionNumber>
Documentation for this can be found here
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.
Go to folder and use the command:
svn co {url}
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
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.
Source: Stackoverflow.com