ВІДМОВА: Я є автором gitchangelog, про який я буду говорити далі.
TL; DR: Ви можете перевірити власний журнал змін gitchangelog або висновок ascii, що генерував попередній.
Якщо ви хочете створити журнал змін зі своєї історії git, вам, мабуть, доведеться врахувати:
- вихідний формат . (Чисто налаштований ASCII, тип змін у Debian, Markdow, ReST ...)
- якісь фільтрування (ви, ймовірно, не хочете бачити всі друкарські або косметичні зміни, що потрапляють у ваш журнал змін)
- деякі фіксують змішування тексту перед тим, як бути включеними до журналу змін. (Забезпечення нормалізації повідомлень як великих літер першої літери або кінцевої крапки, але це може також видалити якусь спеціальну розмітку в резюме)
- чи сумісна ваша історія git ? Об’єднання, тегування не завжди так легко підтримується більшістю інструментів. Це залежить від того, як ви керуєте своєю історією.
Опціонально вам може знадобитися певна категоризація (нові речі, зміни, виправлення) ...
Маючи на увазі все це, я створив і використовую gitchangelog . Це покликане використовувати конвенцію повідомлення про git вчинення для досягнення всіх попередніх цілей.
Конвенція повідомлення про фіксацію зобов’язана створити хороший журнал змін (з використанням або без використання gitchangelog
).
зробити конвенцію повідомлення
Нижче наведено пропозиції щодо того, що може бути корисно подумати над додаванням у ваші повідомлення про фіксацію.
Ви можете приблизно розділити свої зобов'язання на великі розділи:
- за наміром (наприклад: новий, виправити, змінити ...)
- за об'єктом (наприклад: doc, упаковка, код ...)
- за аудиторією (наприклад: розробник, тестер, користувачі ...)
Крім того, ви можете позначити деякі комісії:
- як "незначні" зобов'язання, які не повинні бути замінені у вашому журналі змін (косметичні зміни, невеликі друкарські помилки в коментарях ...)
- як "рефактор", якщо ви насправді не маєте жодних суттєвих змін. Таким чином, це також не повинно бути частиною журналу змін, що відображається, наприклад, кінцевому користувачеві, але може представляти певний інтерес, якщо у вас є журнал змін розробника.
- ви можете також позначити "api", щоб позначити зміни в API чи нові речі API ...
- ... і т.д. ...
Постарайтеся написати своє повідомлення про фіксацію, орієнтуючись на користувачів (функціональність) якомога частіше.
приклад
Це стандарт, git log --oneline
щоб показати, як можна зберігати цю інформацію:
* 5a39f73 fix: encoding issues with non-ascii chars.
* a60d77a new: pkg: added ``.travis.yml`` for automated tests.
* 57129ba new: much greater performance on big repository by issuing only one shell command for all the commits. (fixes #7)
* 6b4b267 chg: dev: refactored out the formatting characters from GIT.
* 197b069 new: dev: reverse ``natural`` order to get reverse chronological order by default. !refactor
* 6b891bc new: add utf-8 encoding declaration !minor
Тож якщо ви помітили, я вибрав формат:
{new|chg|fix}: [{dev|pkg}:] COMMIT_MESSAGE [!{minor|refactor} ... ]
Щоб побачити фактичний результат виводу, ви можете подивитися в кінці сторінки PyPI gitchangelog
Щоб побачити повну документацію моєї конвенції про повідомлення, ви можете переглянути довідковий файл gitchangelog.rc.reference
Як створити з цього вишуканий журнал змін
Тоді зробити повний журнал змін досить просто. Ви можете зробити свій власний сценарій досить швидко або використовувати gitchangelog
.
gitchangelog
створить повний журнал змін (з підтримкою розділів як New
, Fix
...), і він може легко налаштовуватися під ваші власні конвенції про вчинення. Він підтримує будь-який тип висновок , завдяки шаблонування через Mustache
, Mako templating
і має застарілу систему по замовчуванням письмового в сирі пітона; всі поточні 3 двигуни мають приклади того, як їх використовувати, і вони можуть виводити журнали змін як ті, що відображаються на PyPI-сторінці gitchangelog.
Я впевнений , що ви знаєте , що є багато інших git log
для changelog
інструментів там також.
--graph
це візуально показує, на яких гілках комітетів є.