2012-05-31 19 views
7

टैग के बाद से काम करता है मैं एक टैग के बाद से काम करने की संख्या गिनने की कोशिश कर रहा हूं।टैग

मैंने git rev-list का उपयोग करने का प्रयास किया है, लेकिन ऐसा लगता है कि मैं जो भी कोशिश करता हूं, वही परिणाम लौटता है।

$ git rev-list 1.7Start^..HEAD | wc -l 
13902 
$ git rev-list HEAD | wc -l 
13902 

कितने प्रतिबद्ध गिनती करने के लिए के बाद से 1.7Start टैग बनाया गया था की कोशिश कर रहा है: यह है कि मैं क्या करने की कोशिश की है। मैं वर्तमान में master पर HEAD का उपयोग कर रहा हूं लेकिन git rev-list master | wc -l का उपयोग करके मुझे वही मिलता है।

वहाँ नहीं किया गया है 13000+ करता है के बाद से 1.7

git rev-list master दिखाने चाहिए मुझे हर मास्टर में प्रतिबद्ध है और इसलिए जो सिर्फ मुझे फर्क देना चाहिए 1.7Start^..master से एक बड़ी संख्या उपज?

+0

यह मुझे बताता है कि '1.7 स्टार्ट^'और' HEAD' के बीच आम बात नहीं है। यह जांचने के लिए कि क्या मामला है, देखें कि 'गिट मर्ज-बेस 1.7 स्टार्ट^HEAD' क्या उत्पन्न करता है - मेरा अनुमान एक त्रुटि है जो इंगित करता है कि इसमें कोई प्रतिबद्धता नहीं है। –

+0

कोई त्रुटि नहीं, और कोई वापसी मूल्य –

+0

सही, यह इंगित करता है कि सामान्य में कोई इतिहास नहीं है, जो आश्चर्यजनक है। यह टैग कैसे उत्पन्न हुआ था? –

उत्तर

4

परिणाम है कि आप हो रही है सुझाव है 1.7Start^ और HEAD, तो 1.7Start और HEAD के बीच आम में कोई इतिहास है कि वहाँ अलग रूट प्रतिबद्ध होना आवश्यक है। (सिंटेक्स a..b जब git rev-list के लिए पारित बस का अर्थ है "हर b में प्रतिबद्ध जो a में नहीं है।)

ऊपर टिप्पणी में, प्रश्नकर्ता बताया था कि यह पैदा हुई क्योंकि भंडार सबवर्सन से पलायन कर गया था, और master पूरी तरह से है आयातित शाखा भी है कि करने के लिए 1.7Start अंक।

3

Git Git रेव-सूची --count जो इस तेजी से तो WC-एल करता है।

--use-bitmap- Git रेव-सूची से अलग इंडेक्स - गिट के बाद के संस्करणों में गणना, जो - काउंट का अनुकूलन है।

पुन: सूची को एक प्रतिबद्धता की आवश्यकता है, इसलिए एक उदाहरण, अपनी वर्तमान शाखा के लिए अपने रेपो में सभी कामों को ढूंढने के लिए।

git rev-list --count HEAD 
0

आप केवल, पिछले टैग के बारे में परवाह के रूप में विशिष्ट है, तो git describe आप बताएगा कि क्या पिछले टैग है और कितने प्रतिबद्ध वर्तमान शाखा में यह के बाद से किए गए थे। उदाहरण के लिए, नीचे दिए गए आउटपुट में, अंतिम टैग 0.1.9 थी और 67 से वर्तमान शाखा में 67 काम किए गए थे।

$ git describe --tags 

0.1.9-67-gff9fd30 

सत्यापन के लिए, आप नीचे दिए गए आदेश का उपयोग करके प्रतिबद्धताओं की पूरी सूची देख सकते हैं। यदि आप अपने आउटपुट को wc -l पर पाइप करते हैं, तो वही गणना वापस की जानी चाहिए। ध्यान दें कि !! बैश में पिछला कमांड है।

git log --oneline $(git describe --tags --abbrev=0).. 

$ !! | wc -l 

67