Я собираюсь переместить тонну файлов вокруг в существующем проекте. Прежде чем я сделаю это, я хотел бы иметь твердое схватывание на некоторых методах, используемых для анализа кода, который имеет многофайловую историю.
Как может я использовать мерзавца для выяснения: "куда эта строка кода прибывала из?" когда содержание переместилось через несколько файлов в, он - время жизни?
Я знаю, что мерзавец не отслеживает, переименовывает явно (на серьезном основании), таким образом, кажется, что я должен смочь спросить это, я просто не уверен как. Если бы существует метод для визуализации этого, это было бы большим знать также.
Я бы порекомендовал смотреть на три инструмента в Git Toolbox. Первый виноват, что очень такое же, как в CVS. Он показывает, что Commit Compare прикоснулся к каждой строке в файле. Если вы хотите посмотреть, посмотрите, что там было раньше, вы можете принять коммит, который коснулся линии и посмотрите на предыдущий коммит.
git show <sha1_of_interesting_commit>^ -- file/path
Вы можете повторить вину, чтобы увидеть, что произошло до этого.
git blame <sha1_of_interesting_commit>^ -- file/path
Второй инструмент использует - следуйте
для отслеживания файлов прошлых переименоводов.
git log --follow -- file/path
Третий - и, возможно, самый полезный инструмент - это вариант Pickaxe для журнала. Это поиск истории для изменений удаленных, введенных или измененных строк, которые включают в себя данный бит текста. Это особенно полезно для отслеживания таких вещей, как имена функций. Это может быть новым в файле в конкретном коммите, но пришло ли он из другого исходного файла? Был призыв к нему добавлен одновременно или до того, как он переехал?
git log -S"Interesting_Function"
Если вы используете патч или вариант статистики (например, -P
или - stat
) Выход будет ограничен этими файлами, изменения которых фактически включали строку поиска, если вы также не используете - Rickaxe-All
, где отображается все изменения.
в сочетании с Git Git Grep
, чтобы показать, где все текущие вхождения строки, PICKAXE - это чрезвычайно полезная история добычи полезных ископаемых.
Гит виноват
- это то, что вы бы использовали, чтобы задать «Откуда эту строку кода?». Я не знаю, справляется ли это переименовать. Вероятно, делает.