मूल रूप से मैं प्रत्येक प्रतिबद्धता के बाद भंडार में लाइन-ऑफ-कोड की संख्या प्राप्त करना चाहता हूं।मैं गिट रेपो के लिए लाइन्स ऑफ कोड इतिहास कैसे ग्राफ कर सकता हूं?
केवल (वास्तव में भद्दा) तरीके मैं पाया है wc -l *
चलाने के लिए git filter-branch
उपयोग करने के लिए है, और एक स्क्रिप्ट है कि प्रत्येक के लिए प्रतिबद्ध पर git reset --hard
चलाता है, तो wc -l
चलता है जब उपकरण है यह थोड़ा स्पष्ट बनाने के लिए, भागो, यह पहली प्रतिबद्धता के कोड की लाइनों को आउटपुट करेगा, फिर दूसरा और इसी तरह। यह मैं क्या उत्पादन के लिए उपकरण (एक उदाहरण के रूप में) चाहते हैं:
[email protected]:~/$ gitsloc --branch master
10
48
153
450
1734
1542
मैं चारों ओर गहरे लाल रंग का 'Git' पुस्तकालय के साथ खेला जाता है, लेकिन सबसे करीब मैं एक diff पर .lines()
विधि का उपयोग किया गया था, जो पाया जैसे कि यह जोड़ा लाइनों देना चाहिए लगता है (लेकिन नहीं करता है: यह रिटर्न 0 जब आप उदाहरण के लिए पंक्तियों को हटा दें)
require 'rubygems'
require 'git'
total = 0
g = Git.open(working_dir = '/Users/dbr/Desktop/code_projects/tvdb_api')
last = nil
g.log.each do |cur|
diff = g.diff(last, cur)
total = total + diff.lines
puts total
last = cur
end
यह वास्तव में लाइनों के # ग्राफ का उत्पादन करता है लेकिन यह बहुत छोटा है। –
(@omouse - यह दिनांक डेटा फ़ाइल द्वारा लाइनों में से # को भी उत्सर्जित करता है, जिसे आप अपनी पसंद के ऐप में ग्राफ़ कर सकते हैं) – Rich