Журнал изменений мерзавца сгруппирован днем и пользователь

$EDITOR .config/gtk-2.0/gtkfilechooser.ini

Вы ищете строку SortColumn и SortOrder

SortColumn=modified
SortOrder=descending

должен дать Вам, чего Вы пытаетесь достигнуть.

3
22.05.2013, 18:33
2 ответа

Другое решение дало правильное направление. Результат до сих пор:

#!/usr/bin/env bash
while read -r -u 9 date name
do
    echo "$date  $name"
    echo
    GIT_PAGER=cat git log --no-merges --committer="$name" --since="$date 00:00:00 +0000" --until="$(date --date="$date + 1 day" +%Y-%m-%d) 00:00:00 +0000" --format='        * [%h] %s'
    echo
done 9< <(git log --no-merges --format=$'%cd %cn' --date=short | sort --unique --reverse)

Полуночные времена были необходимы. Это похоже по некоторым причинам, что это использует текущее время вместо запуска дня по умолчанию.

Две проблемы остаются:

  • Включайте человекочитаемый список путей перед сообщением о фиксации
  • Структурная распечатка программы длинные сообщения о фиксации

Демонстрационный вывод:

2013-02-19  username

        * [f97bb5f] commit message
        * [f0e419d] looooooooooooooooooooooooooooong commit message
        * [070e50f] commit message

2013-02-19  other_user
        * ...

2013-02-18  username
        * ...
2
27.01.2020, 21:24

Чтобы заставить это работать под OS X, я сделал несколько небольших изменений в решении l0b0:

git-grouped-log () {
  while read -r -u 9 since name
  do
    until=$(date -j -v+1d -f '%Y-%m-%d' $since +%Y-%m-%d)

    echo "$since $name"
    echo

    GIT_PAGER=cat git log             \
      --no-merges                     \
      --committer="$name"             \
      --since="$since 00:00:00 +0000" \
      --until="$until 00:00:00 +0000" \
      --format='  * [%h] %s'

    echo
  done 9< <(git log --no-merges --format=$'%cd %cn' --date=short | sort --unique --reverse)
}

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

1
27.01.2020, 21:24

Теги

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