2010-10-18 2 views
40

git log имеет хороший параметр --format, чтобы указать способ форматирования вывода.Есть ли способ настроить вывод git-вины?

Но git blame, похоже, не имеет эквивалента, хотя вывод по умолчанию blame не совсем удобен для людей. Я бы хотел увидеть гораздо меньше.

Например, вместо:

5600cab7 js/sidebar/VehicleGrid.js  (Rene Saarsoo 2009-10-08 18:55:24 +0000 127) if (x > y) { 
b5f1040c js/map/monitoring/VehicleGrid.js (Mihkel Muhkel 2010-05-31 07:20:13 +0000 128)  return x; 

Я хотел бы иметь:

5600cab7 Rene Saarsoo (1 year ago)  127: if (x > y) { 
b5f1040c Mihkel Muhkel (5 months ago) 128:  return x; 

Я полагаю, что я мог бы написать скрипт для разбора вывода git blame --porcelain, но учитывая ужасающим выход по умолчанию blame Я чувствую, что кто-то там, должно быть, уже что-то сделал.

Любые идеи? Или какие-либо советы по реализации такого скрипта?

Редактировать: Решено, написав small script.

+2

Вы всегда можете использовать 'git gui wame ' :-) –

+6

Ну, я уверен, что это не сработает над SSH. –

+1

он будет работать (по крайней мере, когда обе стороны используют X Window), если вы включите ** X11 Forwarding ** ... хотя я бы не рекомендовал его, потому что он может быть медленным. –

ответ

2

Учитывая, что веб-интерфейс, такой как Trac или Redmine, интегрирует результаты git blame, я предполагаю, что такой синтаксический анализ уже сделан.

Вы можете видеть в этом Redmine Defect 3832 пример с этим рубиновым сценарием:

+0

Спасибо, этот источник действительно помогает. –

+0

** gitweb ** также включают в себя «вину» (и «blame_incremental»), хотя по умолчанию он отключен (потому что это босс процессора). –

18

Вы можете использовать альтернативный формат: git annotate или git blame -c.

Вы можете изменить форматирование дат с --date=<format> опции (или blame.date переменной конфигурации), где <format> является одним из родственника, местного, значения по умолчанию, ISO, RFC, короткие. Подробнее см. В разделах git-blame и git-log.

+0

Да, опция -date немного помогает, но это все еще не так хорошо, как хотелось бы. И аннотация дает ИМХО просто альтернативный уродливый выход: P –

+0

+1 для 'git blame -c'. Хорошо работает с awk. – Utopik

+0

@ReneSaarsoo: Есть GUI для вины/аннотации, одним из которых является 'git gui wame'. –

5

Для меня флаг -s работает, потому что все, что мне нужно, это идентификатор SHA1, после которого я просматриваю фиксацию для деталей. Сценарий определенно кажется излишним. Возможно, флаг -s был недоступен год назад?

+1

Уже более года я использовал [мой маленький скрипт] (https://github.com/nene/config/blob/master/bin/git-praise), я могу сказать, что это было потраченное мало усилий. Флаг -s для меня не достаточно - мне очень нравится автор и дата, я не хочу углубляться, если я могу избежать этого. Кроме того, мой скрипт создает приятный цветной вывод. –

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