gpt4 book ai didi

git - p4 命令行相当于 “git log -p” ?

转载 作者:太空狗 更新时间:2023-10-29 13:01:10 25 4
gpt4 key购买 nike

我经常使用 git log -p <file>git log -p <directory>获取一个文件或一组文件中更改的综合摘要。它输出影响文件的提交历史,以及每个提交的统一差异。

使用 Perforce 我可以做到 p4 changes <file>p4 changes <directory>/...获取提交列表。但是似乎没有显示相应差异的选项。

是否有我可以使用的 Perforce 等价物?如果需要 shell 脚本,一个完整的功能会很好。

如果你想知道我为什么错过这个功能,这里有一些东西 git log -p让我非常快速地做:

  • 最后一个是什么.cpp要修改的文件?
  • 查找字符串 FOO 所在的所有提交已添加到文件中。
  • 一个函数刚刚被弃用;其他开发人员用什么替换了它?
  • 一般来说,只知道给定目录中最近发生的事情。

最佳答案

这是一个合理的近似值:

p4log () {
p4 changes "$1" | awk '{print $2}' | xargs -i p4 describe -du {} | less -F
}

请注意,与 git log -p 不同,参数是必需的。您可以提供类似 p4log ... 的模式,以递归方式针对当前目录下的所有内容运行它。

详细信息

p4 changes "$1":获取与模式匹配的文件的单行更改摘要(最近到最旧)。

awk '{print $2}':提取找零号。

p4 describe -du CHANGE [$CHANGE2 etc]:输出完整的变更描述和差异。 -du 指定统一的diff 格式,最接近git 的diff 格式。

xargs -i p4 describe -du {}:运行 describe 命令,将所有更改编号作为其参数。

less -F:如果页面长于一个屏幕,否则转储到终端。默认情况下,Git 通过 less -F 将其大部分输出通过管道传输

关于git - p4 命令行相当于 “git log -p” ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22503860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com