2013-04-08 16 views
4

我正在嘗試檢出從修訂版401中的SVN中刪除的項目。該項目現已停用,並已完全替換爲重寫了代碼,但我想做一個結賬,以便在重寫時可以回頭看看舊代碼的小部分。如何在命令行中檢出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庫將不同的變體都縮減爲單個結果。

發生這種情況的原因是我發佈之前使用的最後一條命令是我檢查了所有變體以確認它與此問題無關。他們都有同樣的結果。

+0

可能重複@在SVN嗎?](http://stackoverflow.com/questions/15504743/whats-the-difference-between-r-and-urlrev-in-svn) – n611x007 2015-04-21 13:54:32

回答

8

svn co --depth=infinity https://svn.domain.com/repos/trunk/O[email protected]

"SVNBook | Peg and Operative Revisions"

+0

是的,這就是我需要的。如果我正確讀了這個; -r400告訴svn查看給定的位置並追溯到400轉 - 允許重命名。 @ 400指定了我需要的rev 400中的一個位置。非常感謝! – 2013-04-08 12:04:22

+0

有沒有什麼具體的原因,因爲'--revision 400'不能在這裏工作而不是'@ 400'?還是說明我誤解了某些東西?編輯:哦。 http://stackoverflow.com/a/15508611/611007 – n611x007 2015-04-21 13:52:53

-1
  1. 當您使用的修訂版本,你與空間寫:-r 400
  2. 可以使用PEG-修訂聯合國網址,而不是OR:https://svn.domain.com/repos/trunk/[email protected]
  3. 爲了執行操作無需用戶干預(對於證書),您可以添加到命令

... --non-interactive --trust-server-cert

樣品

因爲OP堅持堅持是正確的,而不是RTFM並嘗試

前提條件:http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/Greetings不會在當前HEAD存在,但在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/[email protected] 
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' 
  • 根據最新的留言我得的/枝的頭,但

>dir /b

Greetings

的[這是什麼-r和URL之間的區別
+1

悲哀不。我用過和沒有空格/ =和長短期選項的每個變體。這工作正常,當我檢查出存在的東西(所以我可以檢查出父目錄就好了)。問題似乎是它首先檢查頭部修訂中的某些內容。 – 2013-04-08 10:51:06

+1

@couling - 只讀「SVNBook |掛鉤和操作修訂」。操作修訂的格式與您的問題無關:它只是**命令選項的格式**,「= value」格式不存在,因此被忽略 – 2013-04-08 11:22:26

+1

@Lazey_Badger我會閱讀它。但是:無效的SVN修訂**從不**被忽略。它們導致「語法錯誤」。 (試試看這個'-r = 400'來查看消息)。 svn基於標準的Unix「getopt」參數。我使用的語法是正確的,我一直都在使用它。這裏的錯誤只是因爲我試圖檢出一個已刪除的目錄;它工作得很好,如果我用**相同的語法檢查父目錄**。 – 2013-04-08 11:43:08

相關問題