设置:我的存储库中的文件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
已删除的文件?
理查德的答案还可以,但是您不需要知道完整的SVN URL -^
字符总是扩展到项目URL:
svn annotate ^/<branch path>/<file path>@rev
,例如
svn annotate ^/trunk/README.md@123
确定文件存在的最后一个修订后,您需要使用不同形式的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指出的相对URL可以使用。