Commit mesajları şimdiki mi yoksa geçmiş zamanda mı yazılmalıdır [kapalı]


102

Peki hangisinin daha iyi ve daha sezgisel olduğunu düşünüyorsunuz?

Fixed the XXX bug in YYY
Fix the XXX bug in YYY
Fixes the XXX bug in YYY
Fixing the XXX bug in YYY

Lütfen gerekçelerinizi belirtin. Not Genel bakış açınızdan soruyorum, yani bunu tercih ettiğiniz svn / cvs araçlarıyla veya programlama dilleriyle ilişkilendirmeye çalışmamalısınız, bunun yerine herhangi bir araç ve programlama diline uygulanması gereken / uygulanabilecek bir şey olarak düşünün.


İşindeki biri çok bilgiççe, umarım sen değilsin. Her kim olursa olsun, şimdiki zamanı mükemmele karşı şimdiki kusurluyu ve commit yorumunun yazdığı zamandan ya da arşivde ısrar ettiği zamandan beri okunup okunmadığına dair felsefi muammayı düşünmelidir. İkincisi ise, tamamlanmış bir eylem için present perfect'i kullanın. İlki ise, tamamlanmamış bir mevcut aktivite için kusurlu kullanın.
Heath Hunnicutt

1
Bu sorunun bir kopyası değil. Bu, genel yönergeleri değil, küçük bir yönü soruyor.

3
Neyse ki öyle değil. Soruyordum, bulmaya çalışıyordum, orada genel uygulamanın ne olduğunu öğrenmek istiyorum. Size doğruyu söylemem gerekirse, bu aslında SO'da şimdiye kadar sorduğum en önemsiz soru, ama hey, yine de bir soru, değil mi? Sorunun kendisi üç oy aldı, ki bu (size açık değilse) bu sorunun kendi içinde geçerli olduğunu düşünen tek kişinin ben olmadığımı söylüyor. Yapıcı cevapların peşindeyim ve hiç yardımcı olmuyorsun.
Onun

1
İnsanların commit mesajlarındaki zamanlar hakkında çok fazla endişelenmemesi gerektiğini düşünüyorsanız, iyi söyleyin, nedenlerinizi ve tercihlerinizi belirtin. Yukarıdaki alaycı yorumunuzdan çok daha yararlı ve yararlı.
Onun

10
Bu soruyu çok ciddiye alıyorum. Bu harika bir soru. Yazılım geliştirirken tutarlı olmak çok önemlidir ve böyle olmak bu web sitesinin konusuyla ilgilenen tüm ziyaretçilerin ilgisini çekmelidir. Benim fikrim bu.
Niklas Berglund

Yanıtlar:


39

Bu mesajları diğer geliştiricilere göründükleri gibi düşünüyorum. Henüz değişiklikler uygulanmamış ve örtük bir soru var, "Bu değişiklik setini / yamayı uygulamak ne yapacak?" "YYY'deki XXX hatasını düzeltecek"!

Diğer fiiller için onları bir komut olarak yazmak daha doğal görünür ve önceden belirli bir hedefiniz varsa daha iyi çalışır - iş tamamlanmadan önce ön testlerle birlikte tam anlamıyla commit özetini yazabilirsiniz.

Üzerine çok fazla ağırlık koymuyorum, ama benim için bu, tutarlılığı korurken en az direniş yolu.


8
Git belgelerinde bu zamanı şiddetle tavsiye eden bir şeye rastladığımı hatırlıyorum, ama yine de garip buluyorum.
keithjgrant

1
Bu , Git belgelerinin geldiği parçadır.
sschuberth

31

Ben şahsen geçmiş zamanla ("sabit") gidiyorum çünkü hatayı işlediğim zaman düzeltildi (ya da taahhütte bulunmayacağım).


Buna bir örnek verebilir misiniz?
bzlm

15
bunun bir örneği.
Reverend Gonzo

Adı "İşlem Geçmişi". Tarih her zaman geçmiş zamanda yazılır. Yani geçmiş zaman daha mantıklı. Bazı repoların taahhüt tarihlerinden de geçerken, ona ne yapıldığına bakıyorsunuz ... geçmişte!
Shiva

13

Commit mesajlarını şimdiki zamanda görmeyi tercih ederim. Bu şekilde mesaj, farkın ne yaptığını açıklar (çünkü bu farkı veya hatta tüm taahhüdü farklı bir dala çekebilirsiniz). Bu nedenle, commit mesajı ne "yaptığını" tanımlamaz ... Kaydın kendisinin "ne yaptığını" açıklar. Bu yüzden şimdiki zamanda olmalıdır.

Ayrı ayrı bir farka baktığınızı ve uygulayıp uygulamayacağınıza karar vermeye çalıştığınızı hayal edin. Geçmiş zamanda bir başlığa sahip olmasının bir anlamı yok.


1
Bir edildiği taahhüt tarafından "fark ne" ama fark yaratılır kararlı , bunun zaten "uygulamalı" böylece, zaten git tarihinin bu.
Iulian Onofrei

9

IMHO, bağlamı göz önünde bulundurmanıza gerek kalmadan açıklayıcı olmasını istiyorsanız, o zaman "Sabit" kesinlikle tek doğru varyanttır.

Sezgisellikle ilgili olarak - eğer bir değişiklik günlüğüne bakarsam, kelimenin kullanıldığı bağlamı bildiğim için düzeltilmiş hatayı kastettiğinizi kesinlikle anlayacağım, ancak kelime bu kendi içinde yazılırsa beynim onu ​​çok daha çabuk yakalayacaktır. yolu belirterek.

"Düzeltme" en kötü seçimdir, çünkü yalnızca yamanın ne yaptığını (ne için olduğunu) açıklamakla kalmaz, aynı zamanda üzerinde çalışıldığı ve henüz çözülmediği anlamına gelen bir hata durumu olarak da yorumlanabilir.


7
Fix the XXX bug in YYY
Teach the XXX to be more ZZZ
Correct typos in javadoc

Genel olarak: {zorunlu fiil} {etkilenen nesne} {isteğe bağlı niteleyiciler}

Zorunlu form, bir yama setini düşündüğümde tüm kullanım durumlarına uyar.

  • Burada ne yapacaksın?
  • Bu yama seti ne işe yarar?
  • Bu yama seti neden oluşturuldu? (xxx hatasını düzeltmek için ...)
  • Yyy'deki xxx hatasını düzeltmem gerekiyor. Başka bir şubede bunu zaten yapan bir taahhüt var mı?

Seçiminiz ne olursa olsun, tutarlılığın okunabilirliğe son derece yardımcı olduğunu düşünüyorum. Birini seçin ve ona bağlı kalın.


4
Çok iyi nedenler. Her zaman mesajın "Ben bir yamayım ve [mesaj]" diyormuş gibi düşünürüm. Bu şekilde her zaman zorunlu bir fiil ile başlarsınız.
florisla

5

Şimdiki zamanda şimdiki commit hakkında yazmanın iyi bir fikir olduğunu düşünüyorum, çünkü geçmiş zamanda önceki commitlere atıfta bulunduğunuzda bunu daha net hale getiriyor.


1
Katılıyorum. Kaydetme kendisine başvuruyorsa, "Bu commit F00F hatasını düzeltir" örneğinde olduğu gibi doğrudur.
bzlm

4

Bunun gerçekten önemli olduğunu sanmıyorum. Amaç şudur:

1) Neyin yapıldığını veya yapıldığını iletin, böylelikle hatalar daha kolay bulunabilir, problemler daha kolay geri döndürülebilir ve genellikle projeyi daha kolay sürdürebilir.

2) Varsa hangi biletlerin sabitlendiğini iletin, böylece denetçiler (şirketinizde kullanılıyorsa, hangi değişikliklerin hangi biletlere karşılık geldiğini görebilir).

Son olarak, eğer 'zaten düzeltildiyse, "Düzeltme" bir anlam ifade etmiyor ve hala üzerinde çalışıyorsanız, "Düzeltildi" doğru değildir.


1
Tabii, kesinlikle konuşursak, bunun gerçekten önemli olmadığı doğrudur. Ancak bir tane seçmeniz gerekiyorsa, yerel ağacınızdaki bir hatayı düzelttiğinizde ve yapılan değişiklikleri uygulamak istiyorsanız, "XXX Düzeltildi" mi, "XXX Düzeltildi" mi yoksa "XXX'i Onar" mı diyorsunuz?
Onun

1
Metnin çok kısa olmasının önemli olduğunu düşünüyorum. Bazen şunu merak etmeme neden olan commit mesajları görüyorum: 1. Bir hata bulundu mu yoksa gerçekten düzeltildi mi, yoksa 2. bir düzeltmenin mi gerçekleştirildiğini mi yoksa gerçekten mi uygulandığını veya 3. Karmaşık hatalı davranışın kısmen mi yoksa tamamen mi düzeltildiğini. Ve bazen birkaç işlem aynı hata ile ilgilidir. "Bu commit, DrawBall () 'daki zıplama problemini düzeltir ve 666 numaralı bileti kapatır" da zamanın önemi yoktur, çünkü metin ayrıntılıdır. Ama "DrawBall () yanlış sıçrıyor" için kaydetme ne yaptı?
bzlm

2

" Fix bug X ", " Fixed bug X " den 2 karakter daha kısadır .
Ve " Fixing bug X " ten daha kısa 3

Kısa mesaj yazma bakış açısından, şimdiki zaman bazen / genellikle birkaç karakter kaydeder?
Aslında bunun biraz önemli olduğunu düşünüyorum, örneğin Git'in ilk commit-mesaj satırında 50'den az karakter önerisiyle.
Ayrıca, daha az metin -> daha hızlı okumayı mı tamamladı?


1

Bir commit mesajı, kaydedilmekte olan kodu neden yazdığınızı açıklar.

"Düzeltilmiş sorun 3124" veya "Düzeltme sorunu 3124" doğru görünüyor çünkü bu kodun düzeltildiğini söylüyor | sorunu 3124 düzeltir.

Bununla birlikte, dilbilgisi, hatanın neden düzeltildiğine de bağlı olabilir. Kaydettikten sonra hatayı düzeltildi olarak işaretleyebiliyorsanız, "Düzeltildi" tamamdır, ancak hata, kodunuzu doğruladıktan sonra başka biri tarafından düzeltildi olarak işaretlenecekse, "Düzeltmeler" daha uygun olabilir.


0

Bence böyle bir sorunun en önemli cevabı şudur: Herkes belirli bir proje için neyin işe yaradığını kullanmalı ve onu en azından birazcık tutarlı tutmalı.

Şimdiki zamanı kullanmanın avantajlarını görsem de (ve aslında bu yazıya tökezledim çünkü açık kaynak projelerde bazı şimdiki zaman mesajları gördüm), muhtemelen projelerim için şimdiki zamanı kullanmayacağım. Linux ve Git ve muhtemelen diğer daha büyük açık kaynaklı projeler için önerilen yol budur, ancak bu projelerin bir parçası olmadığım sürece gerçekten umrumda değil.

Ben bir bağımsız geliştiriciyim ve sürüm notları için bir commit mesajının ilk satırını kullanıyorum, aşağıdaki satırlardaki açıklama bana uygulama detayları hakkında bir fikir veriyor. Şimdiki zaman, geliştirici tabanlı yaklaşıma kıyasla kullanıcı merkezli bir iş akışıdır. Bu şekilde biraz zaman kazanabilirim. Kullanıcılarıma sürüm notlarında talimat vermek son derece doğal olmazdı. Hataları düzeltmek ve özellikler eklemek benim işim. Zamandan tasarruf etmeliyim çünkü ben bir indie'yim. Ekibimde bir “sürüm notu yazarı” yok.

Zaten oluşturulmuşsa bir projenin kurallarını kullanın, ancak pragmatik kalın ve işinizi kolaylaştıracak veya hızlandıracak her şeyi yapın.


-1

Bence şimdiki zamanı kullanmanın nedeni , kaydedenin yaptığı şeyden ziyade commit'in yaptığı şeyi daha açıklayıcı"Fixes XXX bug" hale getirmekse daha mantıklı ."Fix XXX bug"


-4

Eğer küçük bir commit ise, present Continuous kullanıyorum:

Düzeltme hatası 304

veya

Yorum eklemek

Büyük bir taahhüt ise, daha çok değişiklik günlüğü yaparım:

  • Hata 453, 657 ve 324'ü düzeltir
  • İfade sözdizimi ekleme
  • Operator sınıfı yeniden düzenlendi.

9
başka bir deyişle, hepsini ister istemez karıştırırsınız B-)
Brian Postow

Hemen hemen. Çünkü sonuçta, commit mesajlarının queens ingilizcesi olması gerekmiyor.
tster

2
Zaten tek bir işlemde çok farklı şeyler yapmamalısın.
florisla
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.