Как добавить символ к каждой строке тела коммита git - PullRequest
3 голосов
/ 06 февраля 2020

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

Скажем, у меня есть git коммит со следующей темой и телом:

This is the subject line

This is a long paragraph spanning multiple lines wrapped to 80
characters. 

This is a second paragraph.

I Я хочу создать git средство форматирования журнала, которое выдает следующие данные из этого коммита:

`<commit short hash>` - This is the subject line

> This is a long paragraph spanning multiple lines wrapped to 80
> characters.
> 
> This is a second paragraph.

Я попытался выполнить следующую команду для создания этого вывода, но не могу найти способ добавить > к каждой строке тела

$ git log --format='`%h` - %s%n%n> %b%n' 'HEAD^..HEAD'
`e8aa4cf` - This is the subject line

> This is a long paragraph spanning multiple lines wrapped to 80
characters.

This is a second paragraph.

Другой вариант, который я пробовал, состоял в том, чтобы использовать w(80,2,2) для дополнения тела, но при этом также отсутствует > в каждой строке.

$ git log --format='`%h` - %s%n%n>%w(80,2,2)%b%n' 'HEAD^..HEAD'
`e8aa4cf` - This is the subject line

>  This is a long paragraph spanning multiple lines wrapped to 80 characters.

  This is a second paragraph.

Можно ли это сделать с помощью git log --format='X'?

1 Ответ

1 голос
/ 06 февраля 2020

Похоже, git log --format не позволяет изменять основной текст.

В качестве альтернативы sed может использоваться для вставки отступа >, например:

git log --pretty=format:'`%h` - %s%n%w(80,8,2)%b' | sed 's/^        /> /' | sed -z 's/\n\n>/\n>\n>/g'
...