2013-08-05 2 views
2

Я пытаюсь иметь список количества изменений файлов в определенном диапазоне (с .. до даты) в репозитории Git (Chromium)
Моя команда :Git whatchanged - как просмотреть полный путь к файлу с изменениями

git whatchanged --since="Aug 16 2009" --until="Aug 17 2009" --stat -r 

Выход:

.../extensions/extension_browsertests_misc.cc  | 1 - 

Моя проблема заключается в том, что я хочу, чтобы увидеть полный путь к файлу, а не с "..."

Я пытался что-нибудь г как:

git whatchanged --since="Aug 16 2009" --until="Aug 17 2009" --full-diff --abbrev=400 

Результат:

: 100644 100644 a3d3889fd542c60c98b6e1b2ecf0bc90148f20e8 81c723db7e83b1bcd7c5da8778c52ab164e569da M хром/браузер/расширения/extension_browsertests_misc.cc

это 40-байтовое шестнадцатеричное фиксации имя объекта , Я попытался преобразовать этот шестнадцатеричный элемент в десятичный, но результат сильно отличался от «1 -» (требуется то же, что и выше, не полный путь)

Мой вопрос: У вас есть идея использовать git whatchanged чтобы показать полный путь к файлу с числом изменений позади?

Спасибо в продвижении.

ответ

2

whatchanged может принимать те же команды, что и diff-tree, и rev-list, которые он использует внутри. вы можете попробовать добавить --stat=200 --stat-name-width=150 к вашей команде от diff-tree, которая отрегулирует ширину столбца статистики до 200, а имя файла - 150, которое должно предоставить вам все это, или вы можете использовать --pretty для настройки вывода журнала в соответствии с вашими потребностями другие способы

+0

+1 Спасибо. Он работает как магия. –

+0

Я не смог найти документацию о аргументе «stat» с функцией «git whatchanged», а затем нашел ее в man-странице «git log»: https://www.kernel.org/pub/software/scm/git/ docs/git-log.html По-прежнему не понимаю, почему мы можем использовать его в «git whatchanged» и почему он не написан на странице «git whatchanged». –

+0

Well Git (как и большинство инструментов unix) - это серия небольших команд, которые работают вместе. Если вы прочитаете man-страницу для whatchanged, вы увидите, что она состоит из git rev-list и git diff-tree, которые она вызывает для создания своего вывода. в описании man-страницы у вас есть 'Команда внутренне вызывает git rev-list, подключенный к git diff-tree, и принимает параметры командной строки для обеих этих команд.« Итак, если вы посмотрите на страницы руководства для обоих этих, вы найдете параметр stat на git diff-tree. Я собираюсь изменить свой ответ, чтобы отразить его как diff-tree, а не log. – Doon

Смежные вопросы