如何在命令行上从SVN签出已删除的项目

时间:2013-04-08 09:37:20

标签: windows svn command-line svn-checkout

我正在尝试检查在修订版401中从我的SVN中删除的项目。该项目现已不存在,并且已完全替换为重写代码,但我想要结帐以便我在处理重写时可以参考旧代码的小部分。

据我所知,这应该像检查旧路径和最后一个好的修订版(400)一样简单。但是当我尝试这个时,我得到一个错误,因为它正在尝试使用最新版本:

C:\Users\couling\workspace>svn checkout --revision=400 https://svn.domain.com/repos/trunk/OldProject
Error validating server certificate for 'https://svn.domain.com:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: svn.domain.com
 - Valid: from Tue, 11 Dec 2012 15:03:33 GMT until Wed, 11 Dec 2013 15:03:33 GMT
 - Issuer: Personal Certificate, Foomy Whatsit, Blah, Blah, GB
 - Fingerprint: 01:02:03:04:05:06:07:08:09:10:11:12:13:14:15:16:17:18:19:20
(R)eject, accept (t)emporarily or accept (p)ermanently? t
svn: '/repos/!svn/bc/1418/trunk/OldProject' path not found

C:\Users\couling\workspace>

我可以通过网络浏览器轻松浏览到修订版400的文件夹,所以在最糟糕的情况下我仍然可以查看代码,但是我更愿意为我的IDE提供所有源文件的副本。

供参考我正在使用此版本的客户端:

C:\Users\couling\workspace>svn --version
svn, version 1.6.16 (r1073529)
   compiled Mar  8 2011, 11:47:41

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

如何查看现已删除的文件夹?

修改

为了消除疑点....上面的checkout命令使用语法--revision=400,因为这恰好是我在发布之前编写命令的最后一种方式。这是有效的语法,因为svn命令使用与GNU getopt_long兼容的库。我使用的版本以及以下内容都是同义-r 400 -r400 --revision 400 --revision=400。 getopt库将不同的变体都缩减为单个结果。

因为它发生的原因是我在发布之前使用的最后一个命令是我经历了所有变体以确认它与此问题无关。他们都有相同的结果。

2 个答案:

答案 0 :(得分:8)

svn co --depth=infinity https://svn.domain.com/repos/trunk/OldProject@400

请参阅"SVNBook | Peg and Operative Revisions"

答案 1 :(得分:-1)

  1. 当您使用操作修订时, 将其写为空格-r 400
  2. 可以使用PEG-revision un URL代替OR:https://svn.domain.com/repos/trunk/OldProject@400
  3. 为了在没有用户干预的情况下执行操作(对于证书),您可以添加命令
  4. ... --non-interactive --trust-server-cert

    <强>样品

    因为OP坚持坚持正确而不是RTFM并尝试

    前提条件:当前HEAD中不存在http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/Greetings,但是在r16

    svn co -r 16 http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/Greetings
    svn: E160013: '/svn/Hello/!svn/rvr/37/branches/Greetings' path not found
    

    svn co http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/Greetings@16
    A    Greetings\Hello.txt
     U   Greetings
    Checked out revision 16.
    

    svn co -r=16 http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/
    svn: E205000: Syntax error in revision argument '=16'
    
    • 根据最后的评论,我必须得到/分支的HEAD,但是

    >dir /b

    Greetings