gitk эквивалент git log --follow <полный путь к файлу>
Итак, у меня есть файл one.txt, который я годами модифицировал в основной ветке. gitk one.txt покажет всю историю этого конкретного файла. Однако после того, как я изменил one.txt => two.txt, gitk two.txt не показывает никаких изменений до переименования.
Я попробовал gitk --follow two.txt, но дал только комментарий для каждого коммита, но не фактическую информацию об изменении файла.
Я знаю, что могу сделать git log --follow two.txt, но вы должны gitk каждое значение SHA1 для каждого изменяемого.
Так какие-нибудь советы?
1 ответ
Проблема в gitk --follow
будет пока отличаться отgit log --follow
, учитывая, согласно Linux Torvalds, --follow
это в основном хак
Я почти уверен, что упомянул об этой проблеме, когда выложил оригинальные следящие патчи, и это сводится к следующему: "
--follow
msgstr "это полный взлом, и он не использует обычную функцию фильтрации коммитов, и, как следствие, такие причудливые вещи, как"--parent
"не очень хорошо с этим работают.Я не уверен, что это поправимо. "
--follow
это очень нехитрая вещь, и это полный хак. Это довольно маленький хак - если вы не знаете лучше и посмотрите на исходный код, вы можете подумать, что он очень естественно вписывается в git. Но нет.Теперь, возможно, мы могли бы взломать
--parent
работать с--follow
тоже, но, честно говоря, я не знаю как. Поскольку--follow
хак действительно в основном сводится к:
- вообще не сокращать коммиты (это то, что обычно упрощает родительские права и удаляет неинтересные коммиты)
- для всего списка нормальных коммитов в "
git log
msgstr ", сделайте генерацию патча волшебным специальным хаком, который ищет переименования.- если это было переименование, измените путь, который мы волшебным образом отслеживаем, так что при следующем коммите, который мы смотрим, мы будем следовать новому (более старому) пути.
- если патч пуст, мы принудительно скрываем коммит (внутренне это
rev->always_show_header = 0;
" вещь)и ключ здесь в том, что мы делаем всю магию в конце очереди, еще долго после того, как мы сделали сокращение коммитов, которое обычно переименовывает родительские права.
Сожалею. я использовал
--follow
иногда, но это хак, чтобы увидеть "хорошо, там его переименовали". Было бы неплохо, если быgitk --follow <pathname>
"работал должным образом, но это не то, что меня очень волнует.