Projeniz neredeyse her zaman geçmiş zamanı kullanmalıdır . Her durumda, proje tutarlılık ve netlik için her zaman aynı zamanı kullanmalıdır.
Şimdiki zamanın kullanılmasını savunan diğer bazı argümanları anlıyorum, ama genellikle geçerli değiller. Aşağıdaki madde işaretleri şimdiki zamanda yazmak için ortak argümanlar ve benim yanıtım.
- Şimdiki zamanda yazmak birisine taahhüdün uygulanmasının sizin yaptığınızdan çok ne yapacağını söyler .
Bu, şimdiki zamanı kullanmak istemenin en doğru nedenidir, ancak sadece doğru proje stiliyle. Bu düşünme tarzı, tüm taahhütleri isteğe bağlı iyileştirmeler veya özellikler olarak görür ve hangi deponuzda hangi taahhütleri saklayacağınıza ve hangilerini reddeteceğinize karar vermekte özgürsünüz.
Bu argüman gerçekten dağıtılmış bir projeyle uğraşıyorsanız işe yarar. Dağıtılmış bir projeyle uğraşıyorsanız, muhtemelen açık kaynaklı bir proje üzerinde çalışıyorsunuzdur. Ve eğer gerçekten dağıtılmışsa, muhtemelen çok büyük bir projedir. Aslında, muhtemelen Linux çekirdeği veya Git. Linux muhtemelen Git'in yayılmasına ve popülerlik kazanmasına neden olan şey olduğundan, insanların stilini neden otorite olarak değerlendireceğini anlamak kolaydır. Evet, stil bu iki projeyle mantıklı. Veya genel olarak büyük, açık kaynaklı, dağıtılmış projelerle çalışır.
Bununla birlikte, kaynak kontrolündeki çoğu proje bu şekilde çalışmaz. Çoğu depo için genellikle yanlıştır. Bu, taahhütleri düşünmenin modern bir yoludur: Subversion (SVN) ve CVS depoları, bu depo check-in stilini zar zor destekleyebilir. Genellikle bir entegrasyon şubesi kötü check-in'leri filtrelemekle ilgiliydi, ancak bunlar genellikle "isteğe bağlı" veya "olması güzel özellikler" olarak değerlendirilmiyordu.
Çoğu senaryoda, bir kaynak deposuna taahhüt verirken, gelecekte başkalarının neden bir değişiklik yapıldığını anlamasını kolaylaştırmak için bu güncellemeyle neyin değiştiğini açıklayan bir günlük girdisi yazıyorsunuz. Genellikle isteğe bağlı bir değişiklik değildir - projedeki diğer kişilerin üzerinde birleşmesi veya yeniden temellendirilmesi gerekir. "Sevgili günlük, bugün bir oğlanla tanışıyorum ve bana merhaba diyor " gibi bir günlük girişi yazmıyorsunuz , bunun yerine " Bir oğlanla tanıştım ve bana merhaba dedi ."
Son olarak, bu tür dağıtılmamış projeler için, bir kişinin bir taahhüt mesajı okuyacağı zamanın% 99.99'u tarihi okumak içindir - geçmiş geçmiş zamanda okunur. Bu taahhüdü uygulayıp uygulamayacaklarına veya şubelerine / depolarına entegre edip etmeyeceklerine% 0.01 oranında karar verilecektir.
- Tutarlılık. Birçok projede böyle (git kendisi dahil). Ayrıca taahhütleri üreten git araçları (git merge veya git revert gibi) yapar.
Hayır, bir sürüm kontrol sistemine giriş yapmış olan projelerin çoğunun geçmiş zamanda geçmişe sahip olduklarını garanti ediyorum (referanslarım yok, ama şimdiki zaman argümanının Git'ten beri yeni olduğunu düşünmek muhtemelen doğru). Mevcut zamanda "revizyon" mesajları veya taahhüt mesajları sadece gerçekten dağıtılmış projelerde anlamlı olmaya başladı - yukarıdaki ilk noktaya bakın.
- İnsanlar sadece "bu kod tabanına ne olduğunu" bilmek için tarihi okumakla kalmaz, aynı zamanda "bu taahhüdü seçtiğimde ne olur" ya da "bu taahhütler nedeniyle kod tabanımda ne gibi yeni şeyler olur" gibi soruları yanıtlarlar. Gelecekte birleşebilir ya da birleşmeyebilir ".
İlk noktaya bakın. Bir kişinin bir taahhüt mesajı okuyacağı zamanın% 99,99'u tarihi okumak içindir - geçmiş geçmiş zamanda okunur. Bu taahhüdü uygulayıp uygulamayacaklarına veya şubelerine / depolarına entegre edip etmeyeceklerine% 0.01 oranında karar verilecektir. % 99.99,% 0.01'i geçer.
Asla uygun olmayan bir zaman / dilbilgisi kullan diyen iyi bir argüman görmedim çünkü daha kısa. Standart 50 karakterlik bir mesaj için muhtemelen ortalama yalnızca 3 karakter kaydedersiniz. Bununla birlikte, şimdiki zaman muhtemelen birkaç karakter daha kısa olacaktır.
- Sorununuzu / özellik izleyicinizdeki bilet başlıklarıyla daha tutarlı bir şekilde adlandırabilirsiniz (bu, bazen gelecek olsa da geçmiş zaman kullanmaz)
Biletler ya şu anda olan bir şey olarak yazılır (örneğin, bu düğmeyi tıkladığımda uygulama yanlış davranışı gösteriyor ) ya da gelecekte yapılması gereken bir şey (örneğin, metnin editör tarafından incelenmesi gerekir ) olarak yazılır .
Tarih (yani mesajlar işlemek) (örn sorun geçmişte yapıldığını şey olarak yazılır edildi sabit).