【问题标题】:How to svn annotate / blame a deleted file?如何svn注释/责备已删除的文件?
【发布时间】:2017-04-27 23:32:50
【问题描述】:

设置: 我的存储库中的文件 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 annotate blame


    【解决方案1】:

    确定文件存在的最后一个修订版后,您需要使用不同形式的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。

    【讨论】:

      【解决方案2】:

      Richard 的回答是可以的,但是你不需要知道完整的 svn url - ^ 字符总是扩展为项目 url:

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

      例如

      svn annotate ^/trunk/README.md@123
      

      【讨论】:

      • 与我的方法不同,这需要知道从存储库根目录到当前目录的路径。与我的回答一样,一种方法是使用 svn info 并查找“相对 URL:”行。
      猜你喜欢
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 2011-05-23
      • 2020-01-25
      • 2010-09-18
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多