4

设置:我的存储库中的文件已foo/bar复制(有修改)到foo/bazr123 中,原始文件已被删除。此副本是手动执行的,而不是使用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已删除的文件?

4

2 回答 2

2

理查德的回答是好的,但你不需要知道完整的 svn url -^字符总是扩展为项目 url:

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

例如

svn annotate ^/trunk/README.md@123
于 2016-12-13T10:01:25.880 回答
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 指出可以使用相对 URL。

于 2016-12-13T00:51:37.287 回答