2013-02-21 19 views
2

我想要獲取已刪除文件的內容。爲什麼svn忽略我的-r參數?

$ svn log -v path_to_file/ 
... 
r123 | user | date 
D path_to_file/the_file 

好的,所以它在修訂版本123中被刪除,並在版本10左右添加。

$ svn cat -r 122 svn+ssh://server/repo/path_to_file/the_file 
svn: File not found: revision 554, path '/path_to_file/the_file' 
$ svn log -r 122 svn+ssh://server/repo/path_to_file/the_file 
svn: File not found: revision 554, path '/path_to_file/the_file' 

這是爲什麼?有任何想法嗎?

回答

1

svn cat -r xxx <path to file>文件被刪除後無法正常工作;
如果你想獲得該文件的副本,使用以下命令:
svn copy <path to file>@xxx <path to workspace>其中XXX是修訂

乾杯

1

我能得到這個具有以下工作:

svn cat svn+ssh://server/repo/path_to_file/[email protected] 

前段時間我用一個合併命令對我進行了一些調整,看起來svn正在慢慢地在'-r rev'上移動到'@rev'。

日誌命令可以使用這兩個選項,但有不同的結果:

svn log -v -r 122 svn+ssh://server/repo/path_to_file/[email protected] 
svn log svn+ssh://server/repo/path_to_file/[email protected] 

第一個日誌請求只會給日誌R122。 第二個日誌命令是r122:0

+1

'@ rev'&'-r rev'有兩個不同的用途。 '@ rev'尋找特定的修訂版以找到該URL。 '-r rev'爲您提供該修訂版本的URL內容。這就是爲什麼你必須指定'@ rev'來檢索已刪除目錄的日誌 - 如果沒有指定'@ rev',它就好像使用了'@ HEAD'一樣。在這裏給出的例子中,'svn log svn + ssh:// server/repo/path_to_file/the_file @ 122 -r 122'將產生與svn log svn + ssh相同的輸出:// server/repo/path_to_file/the_file @ 100 -r 122'(假設該文件也存在於版本100中) – alroc 2013-02-21 21:06:58