Proyek Anda hampir selalu harus menggunakan bentuk lampau . Bagaimanapun, proyek harus selalu menggunakan bentuk yang sama untuk konsistensi dan kejelasan.
Saya mengerti beberapa argumen lain yang berpendapat untuk menggunakan present tense, tetapi biasanya tidak berlaku. Poin-poin berikut ini adalah argumen umum untuk menulis dalam present tense, dan tanggapan saya.
- Menulis dalam present tense memberi tahu seseorang apa yang akan dilakukan komit , daripada apa yang Anda lakukan.
Ini adalah alasan yang paling tepat yang ingin digunakan saat ini, tetapi hanya dengan gaya proyek yang tepat. Cara berpikir ini menganggap semua komitmen sebagai peningkatan atau fitur opsional, dan Anda bebas untuk memutuskan komitmen mana yang harus dipertahankan dan mana yang ditolak dalam repositori khusus Anda.
Argumen ini berfungsi jika Anda berurusan dengan proyek yang benar-benar didistribusikan. Jika Anda berurusan dengan proyek terdistribusi, Anda mungkin sedang mengerjakan proyek sumber terbuka. Dan itu mungkin proyek yang sangat besar jika benar-benar didistribusikan. Bahkan, itu mungkin kernel Linux atau Git. Karena Linux kemungkinan besar yang menyebabkan Git menyebar dan mendapatkan popularitas, mudah untuk memahami mengapa orang menganggap gayanya sebagai otoritas. Ya, gayanya masuk akal dengan kedua proyek itu. Atau, secara umum, ini bekerja dengan proyek-proyek besar, open source, didistribusikan .
Yang sedang berkata, sebagian besar proyek dalam kontrol sumber tidak bekerja seperti ini. Biasanya tidak benar untuk sebagian besar repositori. Ini adalah cara berpikir modern tentang komit: Subversion (SVN) dan repositori CVS hampir tidak dapat mendukung gaya check-in repositori ini. Biasanya cabang integrasi menangani penyaringan check-in yang buruk, tetapi yang umumnya tidak dianggap sebagai "opsional" atau "fitur yang bagus untuk dimiliki".
Dalam sebagian besar skenario, ketika Anda membuat komitmen ke repositori sumber, Anda menulis entri jurnal yang menjelaskan apa yang berubah dengan pembaruan ini, untuk memudahkan orang lain di masa depan untuk memahami mengapa perubahan dilakukan. Ini umumnya bukan perubahan opsional - orang lain dalam proyek ini diharuskan untuk menggabungkan atau membuat ulang. Anda tidak menulis catatan harian seperti "Dear diary, hari ini aku bertemu anak laki-laki dan ia mengatakan halo kepada saya.", Tapi malah Anda menulis "Saya bertemu anak laki-laki dan dia berkata halo kepada saya."
Akhirnya, untuk proyek-proyek yang tidak terdistribusi seperti itu, 99,99% waktu seseorang akan membaca pesan komit adalah untuk membaca sejarah - sejarah dibaca dalam bentuk lampau. 0,01% dari waktu itu akan memutuskan apakah mereka harus menerapkan komit ini atau mengintegrasikannya ke cabang / repositori mereka.
- Konsistensi. Begitulah dalam banyak proyek (termasuk git itu sendiri). Juga alat git yang menghasilkan komit (seperti git merge atau git revert) melakukannya.
Tidak, saya jamin bahwa sebagian besar proyek yang pernah masuk dalam sistem kontrol versi memiliki sejarahnya di masa lalu (saya tidak punya referensi, tapi mungkin benar, mengingat argumen present tense baru sejak Git). Pesan "Revisi" atau komit pesan dalam present tense hanya mulai masuk akal dalam proyek yang benar-benar didistribusikan - lihat poin pertama di atas.
- Orang tidak hanya membaca sejarah untuk mengetahui "apa yang terjadi pada basis kode ini", tetapi juga untuk menjawab pertanyaan seperti "apa yang terjadi ketika saya memilih komit ini", atau "hal-hal baru apa yang akan terjadi pada basis kode saya karena komitmen ini Saya mungkin atau mungkin tidak bergabung di masa depan ".
Lihat poin pertama. 99,99% dari waktu seseorang akan membaca pesan komit adalah untuk membaca sejarah - sejarah dibaca dalam bentuk lampau. 0,01% dari waktu itu akan memutuskan apakah mereka harus menerapkan komit ini atau mengintegrasikannya ke cabang / repositori mereka. 99,99% ketukan 0,01%.
Saya belum pernah melihat argumen yang baik yang mengatakan menggunakan tegang / tata bahasa yang tidak tepat karena lebih pendek. Anda mungkin hanya akan menyimpan 3 karakter rata-rata untuk pesan 50 karakter standar. Yang sedang berkata, present tense rata-rata mungkin akan menjadi beberapa karakter lebih pendek.
- Anda dapat menyebutkan komit lebih konsisten dengan judul tiket di pelacak masalah / fitur Anda (yang tidak menggunakan bentuk lampau, meskipun terkadang di masa mendatang)
Tiket ditulis sebagai sesuatu yang saat ini sedang terjadi (mis. Aplikasi menunjukkan perilaku yang salah ketika saya mengklik tombol ini), atau sesuatu yang perlu dilakukan di masa depan (mis. Teks akan perlu ditinjau oleh editor).
Riwayat (mis. Pesan komit) ditulis sebagai sesuatu yang dilakukan di masa lalu (mis. Masalahnya telah diperbaiki).