что такое мерзавец, эквивалентный 'p4 annotate -a'? - PullRequest
1 голос
/ 11 января 2012

Perforce имеет очень полезную команду, которая печатает все ревизии файла, с аннотациями, указывающими, какие версии содержали каждую строку в файле.Например, я говорю, что создаю файл foo, проверяю его, а затем регистрирую два последующих изменения в файле.Вот три версии foo:

aaa            aaa           aaa
bbb            bbb           bbb
ccc            ccc           ccc
               ddd           ddd
               eee           fff
               fff

Вот что печатает p4 annotate -a:

1-3: aaa
1-3: bbb
1-3: ccc
2-3: ddd
2-2: eee
2-3: fff

Я вижу всю историю foo с аннотациями, указывающими, какие версии содержали каждыйline.

AFAICT, git blame дает только последнюю версию, содержащую каждую строку.git log with pickaxe печатает только строки, соответствующие шаблону, и выдает сообщения о коммитах, а не строки в самом файле.

Есть ли способ сделать что-то похожее на приведенную выше команду Perforce в git?

Заранее спасибо,

Грег

Ответы [ 3 ]

1 голос
/ 11 января 2012

Нет ничего прямо эквивалентного в Git - поскольку у Git нет линейной истории, что-то вроде 1-3 не имеет смысла.

0 голосов
/ 20 июня 2012

как насчет использования git annotate, он может выводить подробные аннотации для каждого файла

0 голосов
/ 11 января 2012

Вы можете использовать git blame для этого, я полагаю - он покажет исходный коммит для каждой строки.

Возможно, это не совсем то, что вы хотите, но это шаг в правильном направлении.Вы можете объединить этот вывод с выводом git log и получить желаемый результат.

...