在命令行上是否存在相当于 svn 对 Perforce 的责备?p4 annotate
不显示用户名——只显示变更集编号(没有祖先历史!)。
我目前必须通过祖先跟踪代码并与文件日志进行比较,并且必须有一种更简单的方法——也许是 F/OSS 实用程序?
在命令行上是否存在相当于 svn 对 Perforce 的责备?p4 annotate
不显示用户名——只显示变更集编号(没有祖先历史!)。
我目前必须通过祖先跟踪代码并与文件日志进行比较,并且必须有一种更简单的方法——也许是 F/OSS 实用程序?
我对 blame 命令并不太熟悉,但我假设您正在寻找谁更改了特定的代码行。最简单的方法是使用 p4win 和 p4v 提供的 Perforce 的“延时视图”。
该工具使用 annotate 和其他一些命令为您提供随时间推移的代码行视图。您可以查看谁修改了哪些代码,何时从代码行中插入或删除代码等。
虽然它不是命令行。我在帮助中简要检查了一下,似乎没有办法直接从 p4win 或 p4v 调用启动延时视图。不过可能有……我会进一步检查……
编辑:我检查了支持,您可以通过 p4v 启动延时视图,如下所示:
p4v.exe -cmd "annotate //<path/to/file>"
HTH。
尝试看一下我认为可以为您提供大部分所需的工具:
1) Bob Sidebotham 和 Jonathan Kamens 编写的p4pr Perl 脚本。
2) Emacs Perforce界面有一个命令“p4-print-with-rev-history”(绑定到“Cx p V”)。
我用一个小脚本来指责
#!/bin/bash
FILE="$1"
LINE="$2"
p4 annotate -cq "${FILE}" | sed "${LINE}q;d" | cut -f1 -d: | xargs p4 describe -s | sed -e '/Affected files/,$d'
您可以将它连接到一些将传递文件名和行的编辑器。
这里有一个更复杂的版本。
从 p4v 客户端,您可以在所有显示文件的视图(如文件、更改列表等)上获得“延时视图”上下文菜单。
延时视图有很多选项,例如单次修订、多次修订,以分析更改的内容、时间和人员。
@alanw123:p4pr 接近我正在寻找的东西,但它不跨越分支边界:
last if $type eq 'branch';
这是我在尝试编写自己的实用程序时遇到的主要问题——你不能(容易地)知道这些行是如何映射回分支的文件的。
该p4 annotate
命令实际上可以-I
使用and命令在命令行上跟随合并/集成和分支-i
(但它不能同时执行这两个操作:():
-I
Follow integrations into the file. If a line was introduced into the file by a merge, the source of the merge is indicated as the changelist that introduced the line. If that source was itself the result of an integration, that source will be used instead, and so on.
The use of the -I option implies the -c option. The -I option cannot be combined with -i.
-i
Follow file history across branches. If a file was created by branching, Perforce includes revisions up to the branch point.
The use of the -i option implies the -c option. The -i option cannot be combined with -I.