мерзавец: журнал изменений день за днем

Как генерировать журнал изменений фиксаций, сгруппированных по дате в формате:

[date today]
- commit message1
- commit message2
- commit message3
...
[date day+3]
- commit message1
- commit message2
- commit message3
...
(skip this day if no commits)

[date day+1]
- commit message1
- commit message2
- commit message3
... 
[date since]
- commit message1
- commit message2
- commit message3

Какая-либо команда журнала мерзавца или умный сценарий удара?

20
задан takeshin 4 June 2010 в 18:16
поделиться

3 ответа

Вот грязная, но рабочая версия скрипта, который я придумал:

#!/bin/bash
# Generates changelog day by day
NEXT=$(date +%F)
echo "CHANGELOG"
echo ----------------------
git log --no-merges --format="%cd" --date=short | sort -u -r | while read DATE ; do
    echo
    echo [$DATE]
    GIT_PAGER=cat git log --no-merges --format=" * %s" --since=$DATE --until=$NEXT
    NEXT=$DATE
done
24
ответ дан 30 November 2019 в 00:13
поделиться

Для этого наверняка потребуется какой-то сценарий.
Немного похоже на это commandline-fu

for k in `git branch|perl -pe s/^..//`;do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k|head -n 1`\\t$k;done|sort -r

(не точно то, что вам нужно, но тем не менее может дать вам представление)

Я знаю о GitStats , который также данные, упорядоченные по дате (но не сообщения о фиксации)


Примечание: часть этой команды git branch плохо приспособлена для написания сценариев, как комментирует Якуб Наребски .
git for-each-ref или git show-ref являются естественными кандидатами для команд сценария, являясь командами сантехники .

1
ответ дан 30 November 2019 в 00:13
поделиться

git log имеет - с и - до , нетрудно что-то обернуть вокруг этого.

1
ответ дан 30 November 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: