2016-12-13 50 views
1

安裝程序:在我的資源庫中的文件foo/bar被複制(修改)爲foo/baz,並且在r123中刪除了原始文件。該副本是手動執行的,而不是svn cp。自那以後,許多修訂已經過去。如何svn註釋/責備刪除的文件?

我現在想看看foo/baz中的一些行來自哪裏。跟蹤回foo/bar後,我試試這個命令:

$ svn annotate foo/bar -r 122 
svn: warning: W155010: The node '/path/to/checkout/foo/bar' was not found. 
svn: E200009: Could not perform blame on all targets because some targets don't exist 

...但因爲該文件不存在了這是行不通的!

問題:我如何svn annotate已被刪除的文件?

回答

2

理查德的答案是好的,但你並不需要知道完整的SVN URL - ^性格總是擴展項目網址:

svn annotate ^/<branch path>/<file path>@rev 

例如

svn annotate ^/trunk/[email protected] 
+0

與我的方法不同,這需要知道從存儲庫根目錄到當前目錄的路徑。與我的回答一樣,有一種方法是使用'svn info'並查找「Relative URL:」行。 –

1

確定文件存在的最後一個版本後,您需要使用不同形式的svn annotate命令,並查看SVN服務器上的歷史記錄。首先,運行svn info獲取服務器的URL爲當前目錄:

$ svn info 
[...] 
URL: https://[email protected]/svn/project/subproject/trunk 
Relative URL: ^/subproject/trunk 
[...] 

遠程修改可以命名爲url/[email protected],如下:

$ svn annotate https://[email protected]/svn/project/subproject/trunk/foo/[email protected] 

$ svn annotate ^/subproject/trunk/foo/[email protected] 

編輯:感謝Patryk Obara指出可以使用相對URL。