c - git diff 在 c 中查找重构名称更改
问题描述
最近,我们的代码库中发生了对 C 代码的大规模重构。我想提出一个使用 git 更改的结构/函数调用名称的快速列表。下面是我是如何做到这一点的。
解决方案
使用 git 查找整个单词的差异,而不是行差异
git diff dev --word-diff-regex="([a-zA-Z0-9_]+)"
通过 sed 管道查找清理输出。你会得到像
[-旧名称-]{+新名称+}
构建一个正则表达式以输出 OldName NewName
sed -n "s/.*\[-\([a-zA-Z_]*\)-\]{+\([a-zA-Z_0-9]*\)+}.*/\1 \2/p"
将此与 uniq 结合起来,并排序以获取更改名称的初始列表。
git diff dev --word-diff-regex="([a-zA-Z0-9_]+)" | \\ sed -n "s/.*\[-\([a-zA-Z_]*\)-\]{+\([a-zA-Z_0-9]*\)+}.*/\1 \2/p" | \\ sort | \\ uniq
推荐阅读
- javascript - 圆形图像上的图像背景颜色渗色
- kotlin - 挂起函数引用作为 let 的参数会出错
- reactjs - 反应 ag-grid 行自动高度不起作用
- lua - Lua:在表格中添加表格
- java - 执行 spark-submit 应用程序到纱线和远程 CDH kerberized env 时出现 pyspark hiveContext 错误
- gpu - 如何在 slurm 上获得相同类型的多个 GPU?
- javascript - 模拟多个呼叫
- flutter - Dart - 将 json 转换为类型列表
- javascript - 如何使用动态变量访问范围字段 - AngularJS
- python - 使用 BeautifulSoup 和 Selenium 检查内部链接时出现问题