git diff, чтобы найти изменения имени рефактора в c - PullRequest
0 голосов
/ 17 ноября 2018

Недавно на нашей кодовой базе произошел большой рефакторинг нашего C-кода.Я хотел придумать быстрый список измененных имен структур / функций, используя git.Вот как я это сделал.

1 Ответ

0 голосов
/ 17 ноября 2018
  1. Используйте git для поиска различий в целых словах, а не в строках

    git diff dev --word-diff-regex="([a-zA-Z0-9_]+)"
    
  2. Пропустите это через sed, чтобы очистить вывод. Вы получите вывод как

    [- Старое_имя -] {+} + новое_имя

  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
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...