Хорошие способы управлять журналом изменений, используя git? - PullRequest
191 голосов
/ 19 августа 2010

Я уже некоторое время использую Git и недавно начал использовать его для маркировки своих выпусков, чтобы мне было легче отслеживать изменения и видеть, какая версия работает у каждого из наших клиентов (к сожалению, В настоящее время код требует, чтобы у каждого клиента была своя собственная копия сайта PHP; я изменяю это, но это медленно).

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

Я пытался погуглить "git changelog" и "git manage changelog", но я не нашел ничего, что действительно говорило бы о процессе изменения кода и о том, как это совпадает с журналом изменений. В настоящее время мы следим за процессом разработки Рейна Хенрихса , и я хотел бы что-то, что согласилось с этим.

Есть ли стандартный подход, который мне не хватает, или это область, где каждый занимается своим делом?

Большое спасибо за ваши комментарии / ответы!

Ответы [ 12 ]

1 голос
/ 01 октября 2016

Я позволил серверу CI передать следующее в файл с именем CHANGELOG для каждого нового выпуска с датой, указанной в имени файла выпуска:

>git log --graph --all --date=relative --pretty=format:"%x09 %ad %d %s (%aN)"
1 голос

Для журнала изменений в стиле GNU , я приготовил функцию

gnuc() {
  {
    printf "$(date "+%Y-%m-%d")  John Doe  <john.doe@gmail.com>\n\n"
    git diff-tree --no-commit-id --name-only -r HEAD | sed 's/^/\t* /'
  } | tee /dev/tty | xsel -b
}

С этим:

  • Я фиксируюмои изменения периодически делаются для резервного копирования и перебазирования их перед окончательным редактированием в ChangeLog
  • , затем запускаются: gnuc

и теперь мой буфер обмена содержит что-то вроде:

2015-07-24  John Doe  <john.doe@gmail.com>

        * gdb/python/py-linetable.c (): .
        * gdb/python/py-symtab.c (): .

Затем я использую буфер обмена в качестве отправной точки для обновления ChangeLog.

Он не идеален (например, файлы должны быть относительно их пути ChangeLog, поэтому python/py-symtab.c без gdb/, так как я будуотредактируйте gdb/ChangeLog), но это хорошая отправная точка.

Более продвинутые сценарии:

Я должен согласиться с Tromey: дублировать данные git commit в ChangeLog бесполезно.

Если вы собираетесь сделать журнал изменений, составьте хорошее резюме того, что происходит, возможно, как указано в http://keepachangelog.com/

...