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

拥有回忆 提交于 2019-11-26 07:52:12

问题


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?


回答1:


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




回答2:


Either

svn checkout url://repository/path@1234

or

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



回答3:


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)




回答4:


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.




回答5:


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.




回答6:


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

Documentation for this can be found here




回答7:


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.




回答8:


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.




回答9:


You'll have to use svn directly:

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

and

svn help co

gives you a little more help.




回答10:


Go to folder and use the command:

svn co {url}


来源:https://stackoverflow.com/questions/1429034/how-to-checkout-a-specific-subversion-revision-from-the-command-line

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!