← До фільтрів та технологій

← До списку лабораторних по Git

Git Лабораторна 96: Еволюція функції або блоку коду

Технологія: Git

Номер лабораторної: 96 · Рівень: middle

Тема: Аналіз історії конкретного фрагмента через log -L

Повний опис / сценарій лабораторної:

Meta: навчитися простежувати історію конкретної функції або блоку коду за допомогою git log -L.



Krok 1. Вибрати файл з кількома функціями або блоками коду.

Komanda: cd ~/git_lab1 && ls



Krok 2. Відкрити файл і визначити діапазон рядків для аналізу.

Poyasnennya: наприклад рядки з десятої по двадцяту.



Krok 3. Виконати log -L для цього діапазону.

Komanda: git log -L 10,20:ІМЯ_ФАЙЛУ

Poyasnennya: Git покаже як змінювався цей блок у часі.



Krok 4. Повторити log -L але за назвою функції якщо файл підтримує таку нотацію.

Komanda: git log -L :імя_функції:ІМЯ_ФАЙЛУ



Krok 5. Вивчити diff для однієї з версій цього блоку.

Komanda: git show ХЕШ



Krok 6. Порівняти підхід log -L з використанням blame для того самого фрагмента.

Komanda: git blame ІМЯ_ФАЙЛУ | sed -n "10,20p"



Krok 7. Занотувати які типи задач виграють від такого аналізу наприклад пошук регресій у певній функції.



Krok 8. Спробувати log -L для іншого файлу де було багато refactor змін.



Krok 9. Обговорити обмеження log -L наприклад для файлів де структура сильно змінилася.



Krok 10. Mini zvit.

Zavdannya: опиши як log -L допоможе пояснити історію складного алгоритму новому члену команди.