2010-03-02 20 views
5

मैं यूनिक्स SCCS और Microsoft Visual SourceSafe अनुभव के साथ एक Git newbee हूँ।क्या गिट ट्रैक संस्करण हैं?

एससीसीएस में, प्रत्येक फ़ाइल में एक संस्करण (आई%) होता है, जो रिलीज (% आर), स्तर (एल%), शाखा (% बी), और अनुक्रम (एस%) से बना होता है। % मैं आर% के बराबर है।% एलबीबी%%, ठीक है? इन्हें आईडी कीवर्ड के रूप में जाना जाता है।

उद्देश्य आप उन्हें में जाँच से पहले स्रोत कोड में इन आईडी कीवर्ड डालने है, तो जब आप उनके लिए बाहर की जाँच केवल पढ़ने के लिए (परिवर्तित करने के लिए नहीं), यह उन्हें अपने संस्करण संख्या को बदल देंगे। उदाहरण के लिए:

printf ("संस्करण s \ n" "% मैं");

... बन जाएगा,

printf ("संस्करण% s \ n", "1.4.6.2");

कौन सा प्रिंट होगा,

संस्करण 1.4.6.2

SCCS एक फ़ाइल-दर-फ़ाइल के आधार पर संस्करणों का ट्रैक रखता है और उन्हें हर बार वे में जाँच कर रहे हैं जुड़ जाता है।

वहाँ है गिट में उसके करीब कुछ भी?

उत्तर

4

के रूप में तो सवाल में चर्चा "To put the prefix ? to codes by Git/Svn", Git कोई आरसीएस कीवर्ड विस्तार है।

निकटतम गिट कमांड git describe, किसी प्रकार का प्रतिबद्ध संदर्भ होने के लिए होगा।

लेकिन यह आमतौर पर एक अच्छा मेटा डेटा मिश्रण विचार नहीं है (अर्थात डेटा "संस्करण आईडी" के बारे में डेटा "फ़ाइल") डेटा (फ़ाइलें) के साथ।
तुम सच में उनके संबद्ध संस्करण आईडी के साथ इस प्रकार की जानकारी, एक अलग विशेष फ़ाइल अपने अन्य नियमित रूप से फ़ाइल लिस्टिंग, की जरूरत है और अधिक व्यावहारिक है।

यहां तक ​​कि साफ़कैस, जिसमें प्रति फ़ाइल शाखा और अनुक्रम की अवधि में एससीएस की तुलना में समान विचार हैं, में एम्बेडेड संस्करण संख्याएं नहीं हैं: Embedded Version Numbers - Good or Evil? देखें।

+0

मैं मानता हूँ कि आप अपने स्रोत कोड में संस्करण संख्याओं इंजेक्शन नहीं किया जाना चाहिए और उसके बाद संस्करण नियंत्रण में भंडारण । संस्करण संख्या को निर्माण समय पर निर्धारित किया जाना चाहिए - शायद आपके स्रोत कोड में टोकन को प्रतिस्थापित करना या गुण फ़ाइलों का उपयोग करना। –

3

आप git-describe का उपयोग कर अद्वितीय टैग नाम जेनरेट कर सकते हैं।

आदेश सबसे हालिया टैग पाता है जो प्रतिबद्धता से पहुंच योग्य है। यदि टैग प्रतिबद्ध करने के लिए इंगित करता है, तो केवल टैग दिखाया गया है। अन्यथा, यह टैग किया वस्तु के शीर्ष पर अतिरिक्त प्रतिबद्ध की संख्या और सबसे हाल का संक्षिप्त ऑब्जेक्ट नाम प्रतिबद्ध के साथ टैग नाम प्रत्यय।

कैसे 'Git का वर्णन' के साथ सॉफ्टवेयर संशोधन संख्या निर्धारित करने के लिए का उदाहरण (from here):

01 git commit -m'Commit One.' 
02 git tag -a -m'Tag One.' 1.2.3 
03 git describe # => 1.2.3 
04 git commit -m'Commit Two.' 
05 git describe # => 1.2.3-1-gaac161d 
06 git commit -m'Commit Three.' 
07 git describe # => 1.2.3-2-g462715d 
08 git tag -a -m'Tag Two.' 2.0.0 
09 git describe # => 2.0.0 
+0

मुझे मूल प्रतिबद्धता को टैग करने के लिए कभी भी नहीं मिला। दूसरे शब्दों में, मुझे किसी और का पुराना कोड दिया गया था, इसे संकलक के नवीनतम संस्करण के साथ काम करने के लिए अपडेट किया गया था, फिर गिट की खोज की गई।मेरे पास दो काम हैं: मूल कोड और मेरे परिवर्तन। मुझे लगता है कि मूल मास्टर होगा, है ना? तो फिर, मैं मास्टर को कैसे टैग करूं? (दरअसल, वह एक मास्टर नहीं है ... उसका कोड वास्तव में बेकार है ... एलओएल।) – PalaDolphin

+0

मास्टर एक शाखा है, जब तक कि आप एक नई शाखा नहीं बनाते, दोनों ही आपके काम पर होंगे। – Zitrax

संबंधित मुद्दे