कहने के लिए स्पष्ट लगता है, लेकिन: एक संस्करण संख्या उद्देश्य आपको आसानी से यह निर्धारित करने देता है कि सॉफ्टवेयर का कौन सा संस्करण चल रहा है।
यदि किसी के पास कोड के किसी विशेष पुनरावृत्ति तक पहुंचने का कोई मौका है, और अन्यथा आसानी से एक विशिष्ट पहचानकर्ता को निर्धारित करने में सक्षम नहीं है, तो उस पुनरावृत्ति में एक विशिष्ट संस्करण संख्या होनी चाहिए। मैं इसे 'पहले नियम' के रूप में देखता हूं। परिणाम के रूप में, अलग-अलग रिलीज़ स्पष्ट रूप से अलग संस्करण संख्याएँ चाहेंगे।
हालाँकि, अधिक खेल में आता है:
यह सुनिश्चित करने का एक तरीका है कि प्रत्येक प्रतिबद्ध के साथ संस्करण संख्याओं को टकराया जाए लेकिन यह आमतौर पर एक अच्छा विचार नहीं है। काम में अपेक्षाकृत कम बदलाव लाने के लिए कई कमियाँ / पुनरावृत्तियाँ हो सकती हैं, और संस्करण 0.0.1 -> 0.0.2 को देखने के लिए बाहरी दुनिया को भ्रमित करना बड़ी संख्या में संचित परिवर्तनों के परिणामस्वरूप फिर 0.0.2 -> 0.0 .56 क्योंकि किसी ने श्वेत स्थान पर एक समय में एक फ़ाइल को ठीक किया और कुछ भी कार्यात्मक नहीं बदला।
"प्रत्येक संस्करण के लिए एक पूर्ण संस्करण" से "प्रत्येक संस्करण के लिए एक संस्करण" तक की सड़क कितनी नीचे है: वास्तव में आप, अन्य उपयोगकर्ताओं और अंतराल को भरने के लिए आप किन प्रणालियों का उपयोग करने के लिए तैयार हैं।
मैं व्यक्तिगत रूप से छोटी परियोजनाओं पर काम करने के लिए उपयोग किया जाता हूं, और एक संस्करण तक गिट हैश का उपयोग करने के लिए खुश हूं कि अन्य उपयोग करते हैं और इनमें से प्रत्येक के लिए एक टक्कर संस्करण (कोई फर्क नहीं पड़ता कि मैं कितने लोगों से अपने हाथों को प्राप्त करने की उम्मीद कर रहा हूं)। हालाँकि बड़ी कंपनियों और बड़े प्रोजेक्ट्स में सिमेंटिक वर्जन नंबरों के बाहर कुछ होता है, लेकिन प्रत्येक कमिटमेंट की तुलना में कम निष्ठा, जैसे कि रिलीज़ कैंडिडेट नंबरिंग का उपयोग किया जाता है। ये फायदे हैं लेकिन जटिलता जोड़ते हैं।