设置:我的存储库中的文件foo/bar
被复制(修改)到foo/baz
,原始文件被删除,在r123中。此副本是手动执行的,而不是svn cp
。自那时以来已经过了很多修改。
我现在想看看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
已删除的文件?
答案 0 :(得分:2)
在确定文件存在的最后修订版之后,您需要使用不同形式的svn annotate
命令并查看SVN服务器上的历史记录。首先,运行svn info
以获取当前目录的服务器URL:
$ svn info
[...]
URL: https://you@wherever.com/svn/project/subproject/trunk
Relative URL: ^/subproject/trunk
[...]
远程修订可以命名为url/path@revision
,如下所示:
$ svn annotate https://you@wherever.com/svn/project/subproject/trunk/foo/bar@122
或
$ svn annotate ^/subproject/trunk/foo/bar@122
编辑:感谢Patryk Obara指出可以改为使用相对网址。
答案 1 :(得分:2)
理查德的答案还可以,但你不需要知道完整的svn网址 - ^
字符总是扩展到项目网址:
svn annotate ^/<branch path>/<file path>@rev
e.g。
svn annotate ^/trunk/README.md@123