क्या संदेशों को वर्तमान या भूत काल में लिखा जाना चाहिए? [बन्द है]


102

तो ऐसा कौन सा है जो आपको लगता है कि बेहतर और अधिक सहज है?

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

कृपया अपने तर्क प्रदान करें। नोट मैं आपके सामान्य दृष्टिकोण से पूछ रहा हूं, जिसका अर्थ है कि आपको इसे अपने पसंदीदा svn / cvs टूल या प्रोग्रामिंग भाषाओं के साथ जोड़ने की कोशिश नहीं करनी चाहिए, बल्कि इसे कुछ ऐसा समझें जो किसी भी टूल और प्रोग्रामिंग भाषाओं पर लागू होना चाहिए।


आपके काम पर कोई बहुत अधिक पंडित है, मुझे आशा है कि यह आप नहीं है। जिस किसी को भी वर्तमान परिपूर्ण बनाम वर्तमान अपूर्णता पर विचार करना चाहिए, और दार्शनिक बोधगम्य है कि क्या प्रतिबद्ध टिप्पणी को उस समय से पढ़ा जाता है जब वह टाइप था, या वह समय जो स्वयं भंडार का था। यदि उत्तरार्द्ध, एक पूर्ण कार्रवाई के लिए वर्तमान सही का उपयोग करें। यदि पूर्व, अपूर्ण वर्तमान गतिविधि के लिए अपूर्ण का उपयोग करता है।
हीथ हनीनिकट

1
उस सवाल का कोई ठिकाना नहीं। यह एक छोटे से पहलू के बारे में पूछ रहा है, समग्र दिशानिर्देशों के बारे में नहीं।

3
सौभाग्य से, यह नहीं है। मैं पूछ रहा था, यह पता लगाने की कोशिश कर रहा हूं, जानना चाहूंगा कि वहां सामान्य अभ्यास क्या है। अगर मुझे आपको सच बताना है, तो यह वास्तव में एसओ पर पूछे गए सबसे महत्वहीन प्रश्न है, लेकिन हे, यह अभी भी एक सवाल है, है ना? प्रश्न ने स्वयं तीन वोट प्राप्त किए हैं, जो (यदि आपके लिए स्पष्ट नहीं है) बताता है कि मैं केवल एक ही व्यक्ति नहीं हूं जो सोच रहा है कि यह प्रश्न अपने आप में मान्य है। मैं रचनात्मक जवाब के बाद हूं और आप बिल्कुल भी मददगार नहीं हैं।
उनका

1
अगर आपको लगता है कि लोगों को प्रतिबद्ध संदेशों में काल के बारे में ज्यादा चिंता नहीं करनी चाहिए, तो यह कहें, अपने कारणों और अपनी प्राथमिकताओं के बारे में बताएं। ऊपर आपकी व्यंग्यात्मक टिप्पणी की तुलना में बहुत अधिक उपयोगी और उपयोगी।
उनका

10
मैं इस सवाल को बहुत गंभीरता से लेता हूं। यह एक महान सवाल है। सॉफ़्टवेयर विकसित करते समय लगातार होना बहुत महत्वपूर्ण है, और ऐसा होना इस वेबसाइट के विषय में रुचि रखने वाले सभी आगंतुकों के लिए रुचि होना चाहिए। यही मेरी राय है।
निकलस बरगलुंड

जवाबों:


39

मैं इन संदेशों के बारे में सोचता हूं क्योंकि वे अन्य डेवलपर्स को दिखाई देते हैं। उनके पास अभी तक लागू किए गए परिवर्तन नहीं हैं, और अंतर्निहित प्रश्न है, "यह परिवर्तनक / पैच क्या लागू करेगा?" यह "YYY में XXX बग को ठीक करेगा"!

अन्य क्रियाओं के लिए उन्हें एक कमांड के रूप में लिखना अधिक स्वाभाविक लगता है, और बेहतर काम करता है यदि आपके पास एक विशिष्ट लक्ष्य है, तो आप काम पूरा होने से पहले अप-फ्रंट परीक्षणों के साथ-साथ प्रतिबद्ध सारांश लिख सकते हैं।

मैं इस पर भारी मात्रा में भार नहीं डालता, लेकिन मेरे लिए यह निरंतरता बनाए रखते हुए कम से कम प्रतिरोध का मार्ग है।


8
मुझे याद है कि इस डॉक्यूमेंट में जोरदार तरीके से सिफारिश करने पर मुझे कुछ गलत हुआ, लेकिन मुझे अब भी अटपटा लगता है।
कीथजग्रेंट

1
यह Git प्रलेखन से आता है।
sschuberth

31

मैं व्यक्तिगत रूप से पिछले तनाव ("निश्चित") के साथ जा रहा हूं क्योंकि जब तक मैं बग को कमिट करता हूं तब तक तय होता है (या मैं प्रतिबद्ध नहीं होता)।


क्या आप इसका उदाहरण दे सकते हैं?
bzlm

15
इसका एक उदाहरण है।
रेवरेंड करें

इसे 'कमिट हिस्ट्री' कहा जाता है। इतिहास हमेशा अतीत काल में लिखा जाता है। इसलिए भूत काल अधिक समझ में आता है। जब आप कुछ रेपो के प्रतिबद्ध इतिहास से भी गुजर रहे हैं, तो आप देख रहे हैं कि अतीत में क्या किया गया था ...!
शिव

13

मैं वर्तमान काल में प्रतिबद्ध संदेश देखना पसंद करता हूं। इस तरह से संदेश बताता है कि अंतर क्या करता है (क्योंकि आप उस अंतर को खींच सकते हैं या यहां तक ​​कि पूरी एक अलग शाखा में प्रतिबद्ध हैं)। इस प्रकार, प्रतिबद्ध संदेश यह वर्णन नहीं करता है कि उसने "क्या किया" ... यह वर्णन करता है कि प्रतिबद्ध स्वयं "क्या" करता है। तो यह वर्तमान काल में होना चाहिए।

अलगाव में एक अंतर को देखने की कल्पना करें और यह तय करने की कोशिश करें कि क्या आप इसे लागू करेंगे। इसका कोई अर्थ नहीं है कि पिछले काल में इसका शीर्षक है।


1
"क्या अंतर है" लेकिन एक प्रतिबद्ध है जो किया गया था द्वारा diff बनाई गई है प्रतिबद्ध है, यह पहले से ही Git इतिहास में है, तो यह पहले से ही था, "लागू किया"।
इयूलियन ओनोफ्रेई

9

IMHO यदि आप चाहते हैं कि इसे संदर्भ पर विचार किए बिना वर्णनात्मक होना चाहिए, तो "फिक्स्ड" निश्चित रूप से एकमात्र सही संस्करण है।

अंतर्मुखता के बारे में - अगर मैं कुछ चैंज को देखता हूं तो मैं निश्चित रूप से समझूंगा कि आप बग को निश्चित कर रहे हैं क्योंकि मुझे उस संदर्भ का पता है जिसमें शब्द का उपयोग किया गया है, लेकिन मेरा मस्तिष्क इसे और अधिक तेज़ी से पकड़ लेगा यदि शब्द इस स्व में लिखा गया है- निर्दिष्ट करने का तरीका।

"फिक्सिंग" सबसे खराब विकल्प आईएमएचओ है क्योंकि इसकी व्याख्या न केवल यह बताने के रूप में की जा सकती है कि पैच क्या करता है (के लिए है) बल्कि एक बग स्थिति के रूप में अच्छी तरह से इसका मतलब है कि यह काम किया जा रहा है और अभी तक हल नहीं हुआ है।


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

सामान्य तौर पर: {अनिवार्य क्रिया} {प्रभावित वस्तु} {वैकल्पिक क्वालिफायर}

जब मैं पैचसेट पर विचार कर रहा हूं तो इम्पीरियल फॉर्म सभी उपयोग के मामलों में फिट बैठता है।

  • आप यहां क्या करने जा रहे हैं?
  • यह पैचसेट क्या करता है?
  • यह पैचसेट क्यों बनाया गया था? (xxx बग को ठीक करने के लिए ...)
  • मैं yyy में xxx बग को ठीक करने की आवश्यकता है। क्या कोई अन्य शाखा है जो पहले से ही ऐसा करती है?

आपकी पसंद के बावजूद, मुझे लगता है स्थिरता स्थिरता को काफी मदद करती है। एक उठाओ और इसके साथ रहना।


4
बहुत अच्छे कारण हैं। मैं हमेशा इस पर विचार करता हूं जैसे कि संदेश कह रहा है "मैं एक पैच हूं और मैं [संदेश]"। इस तरह आप हमेशा एक अनिवार्य क्रिया के साथ शुरू करते हैं।
फ्लोरिसला

5

मुझे लगता है कि वर्तमान काल में वर्तमान प्रतिबद्धताओं के बारे में लिखना एक अच्छा विचार है, क्योंकि यह उस समय को और अधिक स्पष्ट कर देता है, जब आप पिछले काल में पहले के कमिट्स का उल्लेख करते हैं।


1
मैं सहमत हूँ। यदि कमिट स्वयं को संदर्भित करता है तो यह भी सही है, क्योंकि "यह कमिट F00F बग को ठीक करता है"।
bzlm

4

मुझे नहीं लगता कि यह वास्तव में मायने रखता है। उद्देश्य यह है:

1) कॉनवे क्या है या किया जा रहा था, इसलिए बग को आसान पाया जा सकता है, समस्याओं को आसान बनाया जा सकता है, और आम तौर पर प्रोजेक्ट को आसान बनाए रखने में सक्षम हो सकते हैं।

2) अगर कोई टिकट तय किया गया था, तो ऑडिटर (यदि वे आपकी कंपनी में उपयोग किए जाते हैं, तो देख सकते हैं कि कौन से टिकटों के लिए क्या परिवर्तन हैं)।

अंत में, अगर यह पहले से ही तय हो गया है, "फिक्सिंग" का कोई मतलब नहीं है, और यदि आप अभी भी इस पर काम कर रहे हैं, तो "फिक्स्ड" सही नहीं है।


1
यकीन है, सख्ती से बोल रहा हूँ, यह सच है कि यह वास्तव में कोई फर्क नहीं पड़ता। लेकिन अगर आपको एक चुनना है, जब आपने अपने स्थानीय पेड़ में एक बग तय किया है और किए गए परिवर्तनों को करना चाहते हैं, तो क्या आप "फिक्स्ड XXX" या "फ़िक्सेस XXX" या "फ़िक्सेस XXX" कहते हैं?
उनका

1
मुझे लगता है कि यह बहुत मायने रखता है यदि पाठ बहुत संक्षिप्त है। कभी-कभी मुझे ऐसे संदेश दिखाई देते हैं जो मुझे आश्चर्यचकित करते हैं कि क्या 1. एक बग पाया गया था या वास्तव में तय किया गया था, या 2. क्या एक तय किया गया था या वास्तव में लागू किया गया था, या 3. क्या जटिल गलत व्यवहार आंशिक रूप से या वास्तव में पूरी तरह से तय किया गया था। और कभी-कभी कई कॉमेट्स एक ही बग से संबंधित होते हैं। "यह कमिट ड्राबेल () में बाउंसी समस्या को ठीक करता है और टिकट 666 को बंद कर देता है" तनाव कोई फर्क नहीं पड़ता, क्योंकि पाठ क्रिया है। लेकिन "ड्राब्लॉल () गलत है" के लिए, कमिट ने क्या किया?
bzlm

2

" फिक्स बग एक्स " " फिक्स्ड बग एक्स " की तुलना में 2 वर्ण छोटा है ।
और " फिक्सिंग बग एक्स " से 3 कम ।

लेखन-लघु-प्रतिबद्ध-संदेशों के दृष्टिकोण से, वर्तमान काल कभी-कभी / कुछ वर्णों को बचाता है?
जो मुझे लगता है कि कम-से-कम-50-चार्ज़-ऑन-ए-फर्स्ट-कम-मैसेज-लाइन की सिफारिश के साथ उदाहरण के लिए थोड़ा बहुत मायने रखता है।
इसके अलावा, कम पाठ -> पढ़ने में तेज हुआ?


1

एक प्रतिबद्ध संदेश बताता है कि आपने ऐसा कोड क्यों लिखा है जो प्रतिबद्ध है।

"फिक्स्ड समस्या 3124", या "फ़िक्सेस समस्या 3124" सही लगता है क्योंकि यह कहता है कि यह कोड निश्चित है। फ़िक्सेस समस्या 3124।

हालांकि, व्याकरण इस बात पर भी निर्भर हो सकता है कि बग को तय किए गए निशान क्यों हैं। यदि आप बग को कमिट करने के बाद तय कर सकते हैं, तो "फिक्स्ड" बस ठीक है, लेकिन अगर आपके कोड को वेरीफाई करने के बाद बग को किसी और द्वारा तय किया जाना है, तो "फिक्स" अधिक उपयुक्त हो सकता है।


0

मुझे लगता है कि इस तरह के सवाल का सबसे महत्वपूर्ण जवाब है: हर किसी को एक विशेष परियोजना के लिए क्या काम करना चाहिए और इसे कम से कम एक छोटे से संगत रखना चाहिए।

जबकि मुझे वर्तमान काल (और वास्तव में इस पद पर ठोकर खाई है क्योंकि मैं खुले स्रोत परियोजनाओं में कुछ वर्तमान तनाव संदेश देखा है) का उपयोग करने के फायदे देखते हैं, मैं शायद अपनी परियोजनाओं के लिए वर्तमान काल का उपयोग कभी नहीं करूँगा। यह लिनक्स और गिट के लिए अनुशंसित तरीका है, और शायद अन्य बड़े स्रोत स्रोत हैं, लेकिन मैं ईमानदारी से परवाह नहीं करता हूं जब तक कि मैं इन परियोजनाओं का हिस्सा नहीं हूं।

मैं एक इंडी देव हूं और मैं नोट जारी करने के लिए एक प्रतिबद्ध संदेश की पहली पंक्ति का उपयोग करता हूं जबकि निम्नलिखित पंक्तियों में विवरण मुझे कार्यान्वयन विवरण के बारे में एक विचार देता है। यह वर्तमान काल, डेवलपर आधारित दृष्टिकोण की तुलना में एक उपयोगकर्ता केंद्रित वर्कफ़्लो है। मैं कुछ समय इस तरह बचा सकता हूं। यह बहुत ही अस्वाभाविक होगा कि मैं अपने उपयोगकर्ताओं को जारी नोटों में निर्देश दे। बग को ठीक करना और सुविधाओं को जोड़ना मेरा काम है। मुझे समय बचाना होगा, क्योंकि मैं एक इंडी हूं। मेरी टीम में "रिलीज नोट्स लेखक" नहीं है।

यदि वे पहले से ही स्थापित हैं, तो एक परियोजना के नियमों का उपयोग करें, लेकिन व्यावहारिक रहें, और जो कुछ भी आपके काम को आसान या तेज़ करेगा।


-1

मुझे लगता "Fixes XXX bug"है "Fix XXX bug"कि वर्तमान काल का उपयोग करने का कारण "कमिट क्या करता है" के बजाय "कमिट जो भी करता है उसे अधिक वर्णनात्मक बनाना" है


-4

यदि यह एक छोटी सी प्रतिबद्धता है जो मैं वर्तमान का उपयोग करता हूं:

फिक्सिंग बग 304

या

टिप्पणियाँ जोड़ना

यदि यह एक बड़ी प्रतिबद्धता है, तो मैं एक परिवर्तन लॉग का अधिक काम करता हूं:

  • बग 453, 657 और 324 को ठीक करता है
  • एक्सप्रेशन सिंटैक्स जोड़ना
  • ऑपरेटर वर्ग को फिर से दिखाया।

9
दूसरे शब्दों में, आप उन सभी को विली-
नीली

बहुत ज्यादा। क्योंकि अंत में, प्रतिबद्ध संदेशों को रानियों के अंग्रेजी होने की आवश्यकता नहीं है।
tster

2
आप किसी भी तरह से कई अलग-अलग चीजें नहीं कर रहे हैं।
फ्लोरिसला
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.