git diff查找c中的重构名称更改

时间:2018-11-17 20:19:14

标签: c git refactoring

最近在我们的代码库中发生了对C代码的大量重构。我想提出一个使用git更改结构/函数调用名称的快速列表。下面是我的操作方法。

1 个答案:

答案 0 :(得分:0)

  1. 使用git查找整个单词差异,而不是行差异

    git diff dev --word-diff-regex="([a-zA-Z0-9_]+)"
    
  2. 通过sed进行查找以清理输出。 您将得到类似

    的输出

    [-OldName-] {+ NewName +}

  3. 构建一个正则表达式以输出OldName NewName

    sed -n "s/.*\[-\([a-zA-Z_]*\)-\]{+\([a-zA-Z_0-9]*\)+}.*/\1 \2/p"
    
  4. 用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