如何从两个版本之间的 Perforce diff 中获取 C/C++ 函数名

Posted

技术标签:

【中文标题】如何从两个版本之间的 Perforce diff 中获取 C/C++ 函数名【英文标题】:How to get C/C++ function name from Perforce diff between two version 【发布时间】:2017-12-20 05:33:07 【问题描述】:

我正在尝试提取与执行修订文件之间的差异。但我的要求是提取被修改的函数名称。有没有办法找到改变的功能。

【问题讨论】:

Afaik perforce 无法为您做到这一点。获取两个版本并区分它们应该可以工作。 您可能必须实际“解析”(我使用相对宽松的术语)源文件才能做到这一点。获取整个源文件,从差异点向后扫描,直到找到函数声明。在这里,编码风格可能会对您有所帮助,因此您可以从“它从第 1 列开始并带有括号”中识别出一个函数,例如。 @Mats Petersson,谢谢。通过上述方式,我能够解析和提取功能更改。 【参考方案1】:

使用匹配函数名称的正则表达式执行 p4 diff2 和 grep:

Regex to pull out C function prototype declarations?

【讨论】:

以上是关于如何从两个版本之间的 Perforce diff 中获取 C/C++ 函数名的主要内容,如果未能解决你的问题,请参考以下文章

如何获取待处理的 Perforce 更改列表中所有文件的差异?

Git diff 比较两个版本文件之间的差异

Perforce:如何从分支操作之前获取“截至”日期或修订版本的文件?

Perforce挂起的更改列表差异脚本

如何在 2 次提交之间创建一个 git diff/diff-tree/archive 与此时的文件版本(不是头)

gitlog和diff区别