2016-12-13 19 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。