如何svn注释/责备已删除的文件?

时间:2016-12-13 00:51:37

标签: svn annotate blame

设置:我的存储库中的文件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已删除的文件?

2 个答案:

答案 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