PENOLAKAN: Saya adalah penulis gitchangelog yang akan saya bicarakan berikut ini.
TL; DR: Anda mungkin ingin memeriksa changelog gitchangelog sendiri atau output ascii yang menghasilkan sebelumnya.
Jika Anda ingin membuat changelog dari sejarah git Anda, Anda mungkin harus mempertimbangkan:
- yang format output . (ASCII khusus murni, jenis changelog Debian, Markdow, ReST ...)
- beberapa penyaringan komit (Anda mungkin tidak ingin melihat semua kesalahan ketik atau perubahan kosmetik di changelog Anda)
- beberapa komit bertengkar sebelum dimasukkan ke changelog. (Memastikan normalisasi pesan memiliki huruf besar pertama atau titik akhir, tetapi bisa juga menghapus beberapa markup khusus dalam ringkasan)
- apakah riwayat git Anda kompatibel ? Penggabungan, pemberian tag, tidak selalu mudah didukung oleh sebagian besar alat. Itu tergantung pada bagaimana Anda mengelola riwayat Anda.
Secara opsional, Anda mungkin menginginkan beberapa kategorisasi (hal baru, perubahan, perbaikan bug) ...
Dengan semua ini dalam pikiran, saya membuat dan menggunakan gitchangelog . Ini dimaksudkan untuk memanfaatkan konvensi pesan komit git untuk mencapai semua tujuan sebelumnya.
Memiliki konvensi pesan komit wajib untuk membuat changelog yang bagus (dengan atau tanpa menggunakan gitchangelog
).
lakukan konvensi pesan
Berikut ini adalah saran untuk apa yang mungkin berguna untuk ditambahkan dalam pesan komit Anda.
Anda mungkin ingin memisahkan kira-kira komitmen Anda menjadi beberapa bagian besar:
- dengan niat (misalnya: baru, perbaiki, ubah ...)
- oleh objek (misalnya: doc, packaging, code ...)
- oleh audiens (misalnya: dev, tester, pengguna ...)
Selain itu, Anda dapat menandai beberapa komitmen:
- sebagai komitmen "minor" yang seharusnya tidak ditampilkan di changelog Anda (perubahan kosmetik, kesalahan ketik kecil di komentar ...)
- sebagai "refactor" jika Anda tidak benar-benar memiliki perubahan fitur yang signifikan. Jadi ini seharusnya tidak menjadi bagian dari changelog yang ditampilkan kepada pengguna akhir misalnya, tetapi mungkin menarik jika Anda memiliki changelog pengembang.
- Anda juga dapat menandai dengan "api" untuk menandai perubahan API atau hal-hal API baru ...
- ... dll ...
Cobalah untuk menulis pesan komit Anda dengan menargetkan pengguna (fungsionalitas) sesering mungkin.
contoh
Ini standar git log --oneline
untuk menunjukkan bagaimana informasi ini dapat disimpan ::
* 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
Jadi jika Anda perhatikan, format yang saya pilih adalah:
{new|chg|fix}: [{dev|pkg}:] COMMIT_MESSAGE [!{minor|refactor} ... ]
Untuk melihat hasil keluaran aktual, Anda bisa melihat di akhir halaman PyPI dari gitchangelog
Untuk melihat dokumentasi lengkap dari konvensi pesan komit saya, Anda dapat melihat file referensi gitchangelog.rc.reference
Cara menghasilkan changelog yang sangat bagus dari ini
Kemudian, sangat mudah untuk membuat changelog lengkap. Anda dapat membuat skrip Anda sendiri dengan cepat, atau menggunakannyagitchangelog
.
gitchangelog
akan menghasilkan log perubahan lengkap (dengan dukungan pembagian sebagai New
, Fix
...), dan dapat dikonfigurasi secara wajar untuk konvensi yang Anda buat sendiri. Mendukung jenis output berkat template melalui Mustache
, Mako templating
dan memiliki mesin standar warisan yang ditulis dalam python baku; semua 3 mesin saat ini memiliki contoh cara menggunakannya dan dapat menampilkan changelog's seperti yang ditampilkan di halaman PyPI dari gitchangelog.
Saya yakin Anda tahu bahwa ada banyak lainnya git log
untuk changelog
alat di luar sana juga.
--graph
, yang memperlihatkan secara visual kepada Anda di cabang mana komit itu berada.