Может ли gitk показать все коммиты, кроме коммитов данного автора? - PullRequest
3 голосов
/ 13 июня 2011

Я хочу использовать gitk для просмотра всех коммитов, кроме коммитов данного автора.Примерно так:

gitk --author =! Joe

Возможно ли это?

Ответы [ 2 ]

4 голосов
/ 30 сентября 2016

Из командной строки:

gitk --perl-regexp --author='^(?!joe)'

Чтобы исключить коммиты от нескольких авторов:

gitk --perl-regexp --author='^(?!jack|jill)'

Объяснение: (?!whatever) - это регулярное выражение (в стиле perl) с упреждением: соответствует позиции, за которой не следует whatever.Мы привязываем его к началу поля Author с помощью "начала строки" regexp ^.

или запускаем gitk --perl-regexp, а затем в меню gitk выберите View -> New View (или Shift +F4 для краткости) и введите ^(?!joe) в поле «Автор».

Если вы не хотите всегда вводить gitk --perl-regexp, вы можете настроить git на глобальное использование регулярных выражений perl, запустив

git config --global grep.patternType perl

1 голос
/ 13 июня 2011

Я не думаю, что есть ужасно простой способ сделать это -

Если у вас есть Perl или что-то подобное, вы можете собрать решение:

  1. Получите список коммитов, которые вы хотите исключить, и поместите их в хеш: git rev-list [refs] --author = "[author pattern]"

  2. Получить список коммитов, которые вы хотите показать: git rev-list [refs]

  3. Вычтите элементы в хэше из коммитов, которые вы хотите показать

  4. Показать коммиты, которые вы хотите показать: gitk --no-walk [вывод вычитания]

Вы можете довольно легко написать что-нибудь на perl / python / ruby, чтобы сделать 1-3, а затем просто сделать

gitk --no-walk $ (drop-author.pl [refs] [author-pattern])

...