क्या आप GitHub रिपॉजिटरी से कोड की लाइनों की संख्या प्राप्त कर सकते हैं?


416

GitHub रिपॉजिटरी में आप "भाषा के आँकड़े" देख सकते हैं, जो उस प्रोजेक्ट का प्रतिशत प्रदर्शित करता है जो किसी भाषा में लिखा गया है। हालाँकि, यह प्रदर्शित नहीं होता है कि परियोजना में कोड की कितनी लाइनें हैं। अक्सर, मैं जल्दी से एक परियोजना के पैमाने और जटिलता की छाप प्राप्त करना चाहता हूं, और कोड की लाइनों की गिनती एक अच्छा पहला प्रभाव दे सकती है। कोड की 500 लाइनें एक अपेक्षाकृत सरल परियोजना का अर्थ है, कोड की 100,000 लाइनें एक बहुत बड़ी / जटिल परियोजना का अर्थ है।

इसलिए, क्या विभिन्न भाषाओं में लिखी गई कोड की पंक्तियों को GitHub रिपॉजिटरी से प्राप्त करना संभव है, अधिमानतः क्लोनिंग के बिना?


सवाल " एक गिट रिपॉजिटरी में लाइनों की संख्या की गणना करता है " एक स्थानीय गिट रिपॉजिटरी में कोड की लाइनों की गणना कैसे करें, लेकिन:

  1. आपको प्रोजेक्ट को क्लोन करना होगा, जो बड़े पैमाने पर हो सकता है। उदाहरण के लिए, वाइन जैसी परियोजना का क्लोन बनाना, उम्र लेता है।
  2. आप उन फाइलों में लाइनें गिनेंगे जो जरूरी नहीं कि कोड हो, जैसे i13n फाइलें।
  3. यदि आप केवल (उदाहरण के लिए) रूबी फ़ाइलों को गिनते हैं , तो आप संभवतः जावास्क्रिप्ट जैसी अन्य भाषाओं में बड़े पैमाने पर कोड को याद करेंगे। आपको पहले से पता होना चाहिए कि परियोजना किन भाषाओं का उपयोग करती है। आपको उस प्रोजेक्ट का उपयोग करने वाली प्रत्येक भाषा के लिए भी गिनती दोहरानी होगी।

सब के सब, यह संभावित रूप से बहुत समय के लिए गहन है "जल्दी से एक परियोजना के पैमाने की जाँच"।


4
@ शंकर: वास्तव में उस बारे में नहीं सोचा था। मास्टर शाखा की नवीनतम प्रतिबद्धता, मुझे लगता है।
हब्रो

8
@ प्रश्न: प्रश्न को बंद करने का एक वैध कारण है? मैं दिशानिर्देशों में इसे खोजने की कोशिश कर रहा हूं । मेरी योजना पहले SO पर पूछने की थी। यदि वह निरर्थक साबित होता है, तो मैं गितुब ग्राहक सहायता मांगूंगा और उनकी जानकारी यहां एक उत्तर के रूप में पोस्ट करूंगा।
हब्रो

7
@Abizern: विषय पर देखें । यह कहता है कि आप "प्रोग्रामर द्वारा आमतौर पर उपयोग किए जाने वाले सॉफ़्टवेयर टूल" के बारे में प्रश्न पूछ सकते हैं।
हुब्रो

1
@ हबरो 1 मैंने हल कर दिया है git clone --depth 1। जैसा कि 2 और 3 के लिए, मुझे संदेह है कि वहाँ सॉफ्टवेयर है जो आपके लिए विश्लेषण कर सकता है, और आप फ़ाइल एक्सटेंशन के आधार पर बहुत अधिक अनुमान लगा सकते हैं, लेकिन मैं एक अच्छी खोज के साथ आने वाले समय का नरक रहा हूं कहा सॉफ्टवेयर खोजने के लिए शब्द। शायद आपको एक और सवाल पूछने की जरूरत है।
Schwern

1
Codetabs.com/count-loc/count-loc-online.html पर एक ऑनलाइन टूल है , अगर यह किसी भी अच्छा नहीं है तो कोशिश नहीं की है।
TGR

जवाबों:


298

एक शेल स्क्रिप्ट, cloc-git

आप एक दूरस्थ Git रिपॉजिटरी में एक कमांड के साथ लाइनों की संख्या की गणना करने के लिए इस शेल स्क्रिप्ट का उपयोग कर सकते हैं:

#!/usr/bin/env bash
git clone --depth 1 "$1" temp-linecount-repo &&
  printf "('temp-linecount-repo' will be deleted automatically)\n\n\n" &&
  cloc temp-linecount-repo &&
  rm -rf temp-linecount-repo

स्थापना

इस स्क्रिप्ट को स्थापित करने के लिए CLOC ("कोड की गणना लाइनें") की आवश्यकता होती है। clocसंभवतः आपके पैकेज मैनेजर के साथ स्थापित किया जा सकता है - उदाहरण के लिए, होमब्रे केbrew install cloc साथ । इसके अंतर्गत प्रकाशित एक डॉकटर छवि भी हैmribeiro/cloc

आप एक फाइल करने के लिए अपने कोड को सहेज कर स्क्रिप्ट स्थापित कर सकते हैं cloc-git, चल रहा है chmod +x cloc-git, और फिर अपने में एक फ़ोल्डर में फ़ाइल ले जाने $PATHजैसे /usr/local/bin

प्रयोग

स्क्रिप्ट एक तर्क लेती है, जो कि कोई भी URL है जो git cloneस्वीकार करेगा। उदाहरण https://github.com/evalEmpire/perl5i.git(HTTPS) या git@github.com:evalEmpire/perl5i.git(SSH) हैं। आप इस URL को "क्लोन या डाउनलोड" पर क्लिक करके किसी भी GitHub प्रोजेक्ट पेज से प्राप्त कर सकते हैं।

उदाहरण आउटपुट:

$ cloc-git https://github.com/evalEmpire/perl5i.git
Cloning into 'temp-linecount-repo'...
remote: Counting objects: 200, done.
remote: Compressing objects: 100% (182/182), done.
remote: Total 200 (delta 13), reused 158 (delta 9), pack-reused 0
Receiving objects: 100% (200/200), 296.52 KiB | 110.00 KiB/s, done.
Resolving deltas: 100% (13/13), done.
Checking connectivity... done.
('temp-linecount-repo' will be deleted automatically)


     171 text files.
     166 unique files.                                          
      17 files ignored.

http://cloc.sourceforge.net v 1.62  T=1.13 s (134.1 files/s, 9764.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Perl                           149           2795           1425           6382
JSON                             1              0              0            270
YAML                             2              0              0            198
-------------------------------------------------------------------------------
SUM:                           152           2795           1425           6850
-------------------------------------------------------------------------------

वैकल्पिक

मैन्युअल रूप से आदेश चलाएँ

यदि आप शेल स्क्रिप्ट को सहेजने और स्थापित करने से परेशान नहीं होना चाहते हैं, तो आप मैन्युअल रूप से कमांड चला सकते हैं। एक उदाहरण:

$ git clone --depth 1 https://github.com/evalEmpire/perl5i.git
$ cloc perl5i
$ rm -rf perl5i

भाषाविद

यदि आप चाहते हैं कि परिणाम GitHub की भाषा प्रतिशत से मेल खाते हों, तो आप CLOC के बजाय भाषाविद् को स्थापित करने का प्रयास कर सकते हैं । इसकी README के अनुसार , आपको जरूरत है और फिर दौड़ने की । मैं इसे काम करने के लिए नहीं मिला ( # 2223 जारी कर सकता हूं )।gem install linguistlinguist


6
रेपो क्लोनिंग के बिना निर्दिष्ट मूल प्रश्न।
linuxdan

12
@linuxdan मेरी स्क्रिप्ट पूरे रेपो को क्लोन नहीं करती है; यह --depth 1केवल सबसे हालिया प्रतिबद्ध डाउनलोड करने के लिए गुजरता है। अधिकांश रिपॉज के लिए, यह क्लोनिंग के बारे में मूल प्रश्न की चिंता को बहुत देर तक टालता है।
रोरी ओ'केन

2
आदमी, यह अद्भुत काम करता है! हमेशा आश्चर्य होता है कि मैंने कितनी पंक्तियों को कोडित किया है)
अनातोली याकिमचुक

@ RoryO'Kane का उपयोग हम clocअपने मशीन (ऑनलाइन के माध्यम से) के लिए रेपो क्लोनिंग के साथ एक गितुब भंडार में कोड की पंक्तियों को प्राप्त करने के लिए कर सकते हैं । ऊपर दिए गए cloc-gitपंक्तियों की संख्या गिनने से पहले शुरू करने के लिए पहले दिए गए क्लोन
कसुन सियामबलपितिया

@KasunSiyambalapitiya क्षमा करें, मुझे clocआपके लिए चलने वाली किसी भी ऑनलाइन वेबसाइट का पता नहीं है । clocकोड में लाइनों की गणना करने के लिए , आपके कंप्यूटर को उस कोड को डाउनलोड करना होगा, हालांकि केवल अस्थायी रूप से। ध्यान दें कि जब आप उन्हें देखते हैं तब भी वेब ब्राउज़र तकनीकी रूप से वेब पेज डाउनलोड कर रहे होते हैं; वे केवल डिस्क के बजाय मेमोरी में सहेजते हैं।
रोरी ओ'केन

226

आप जैसे कुछ चला सकते हैं

git ls-files | xargs wc -l

जो आपको कुल गिनती देगा →

कोड की लाइनें

या इस टूल का उपयोग करें → http://line-count.herokuapp.com/


8
प्रश्न का संक्षिप्त उत्तर (जीथब का उपयोग करके इस नंबर को खोजना) नहीं है। आपका दृष्टिकोण दूसरा सबसे अच्छा विकल्प है, विशेष रूप से जब से हम जो भी फाइल गिनना चाहते हैं, उसे फ़िल्टर कर सकते हैं।
बर्नार्ड

32
यदि आप फ़िल्टर करना चाहते हैं, जैसे, पायथन कोड git ls-files | grep '\.py' | xargs wc -l:।
फेलिप एसएस श्नाइडर

3
मैं क्या कर रहा था xargsकरने के लिए wc -lसभी फ़ाइलों को मैन्युअल रूप से तो का उपयोग awkस्तंभ योग करने के लिए, OMG इस इतना आसान है।
sdkks

1
इस सरल दृष्टिकोण में फाइलों में टिप्पणियां शामिल हैं। टिप्पणियों और रिक्त लाइनों को हमेशा "कोड की लाइनें" नहीं माना जाता है।
मार्क स्टोसबर्ग

2
खैर, प्रलेखन कोड का एक बड़ा हिस्सा है। यदि आप टिप्पणियों को बाहर निकालते हैं, तो आप वास्तव में लाइन कहाँ खींचेंगे उन टिप्पणियों के बारे में, जिनमें कोड जानकारी जैसे परम शामिल हैं, उन टिप्पणियों के बारे में जो अगली पंक्ति के लिए ESLint को अक्षम करते हैं - उन लाइनों के बारे में जो कुछ कोड के बाद 80% टिप्पणियां हैं। देखो इसके साथ मुझे कहां जाना है।
अहमद आवा 20

128

Google Chrome ब्राउज़र के लिए एक एक्सटेंशन है - GLOC जो सार्वजनिक और निजी रिपोज के लिए काम करता है।

से एक परियोजना के कोड की लाइनों की संख्या गिना जाता है:

  • परियोजना विस्तार पृष्ठ
  • उपयोगकर्ता के भंडार
  • संगठन पृष्ठ
  • खोज परिणाम पृष्ठ
  • ट्रेंडिंग पेज
  • पृष्ठ का अन्वेषण करें

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें


3
हालांकि यह निजी रिपॉजिटरी के लिए काम नहीं करता है
अपवित्र

4
@MichailMichailidis आपके सुझाव के लिए धन्यवाद। मैं इसे ठीक कर दूंगा।
आर्टेम सोलोवोव

4
@ मेरी टिप्पणी का मतलब सीआर के रूप में नहीं था - एक प्रयोज्य दृष्टिकोण से ग्रेडिएंट काम करता है (जिस कारण का आपने उल्लेख किया है) मेरा मतलब था कि मैं चुने हुए रंगों का प्रशंसक नहीं हूं लेकिन यह सिर्फ मेरी (व्यक्तिपरक) राय है। चीयर्स :)
tech4242

2
@ हेलीवेल यकीन है। कुछ हफ्तों में
आर्टेम सोलोवोव

2
@hellyale यह निजी रेपो के लिए भी काम करता है। एक्सटेंशन को अपडेट करें। उपयोग करने के लिए और अधिक नई सुविधाएँ हैं
आर्टेम सोलोवव

70

यदि आप ग्राफ़ / योगदानकर्ता पृष्ठ पर जाते हैं, तो आप रेपो के सभी योगदानकर्ताओं की एक सूची देख सकते हैं और उन्होंने कितनी पंक्तियाँ जोड़ी और हटा दी हैं।

जब तक मैं कुछ याद नहीं कर रहा हूं, तब तक सभी योगदानकर्ताओं के बीच जोड़ी गई लाइनों की कुल संख्या से हटाई गई लाइनों की कुल संख्या को घटाकर, रेपो में कोड की कुल पंक्तियों को प्राप्त करना चाहिए। (संपादित करें: यह पता चला है कि मैं कुछ याद कर रहा था। विवरण के लिए ऑर्बिटबोट की टिप्पणी पर एक नज़र डालें ।)

अपडेट करें:

यह डेटा GitHub के एपीआई में भी उपलब्ध है । इसलिए मैंने डेटा लाने और गणना करने के लिए एक त्वरित स्क्रिप्ट लिखी:

'use strict';

function countGithub(repo) {
fetch('https://api.github.com/repos/'+repo+'/stats/contributors')
    .then(response => response.json())
    .then(contributors => contributors
        .map(contributor => contributor.weeks
            .reduce((lineCount, week) => lineCount + week.a - week.d, 0)))
    .then(lineCounts => lineCounts.reduce((lineTotal, lineCount) => lineTotal + lineCount))
    .then(lines => window.alert(lines));
}

countGithub('jquery/jquery'); // or count anything you like

बस इसे क्रोम DevTools स्निपेट में पेस्ट करें, रेपो बदलें और रन क्लिक करें।

अस्वीकरण ( lovasoa के लिए धन्यवाद ):

इस विधि के परिणामों को नमक के दाने के साथ लें, क्योंकि कुछ रिपोज (सॉरिच87 / बूटस्ट्रैप-टूर) के परिणामस्वरूप यह नकारात्मक मानों में परिणत होता है, जो यह संकेत दे सकता है कि गिटहब के एपीआई से लौटे डेटा के साथ कुछ गड़बड़ है।

अपडेट करें:

कुल पंक्ति संख्याओं की गणना करने के लिए यह विधि पूरी तरह विश्वसनीय नहीं है। विवरण के लिए कक्षा की टिप्पणी पर एक नज़र डालें ।


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

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

Code_frequecy API का उपयोग करना अधिक सरल होगा। देते हैं: fetch("https://api.github.com/repos/jquery/jquery/stats/code_frequency").then(x=>x.json()).then(x=>alert(x.reduce((total,changes)=>total+changes[1]+changes[2],0)))
lovasoa

हम्म् ... दिलचस्प: sorich87 / बूटस्ट्रैप-टूर पर अपने कोड का परीक्षण करें। परिणाम नकारात्मक है।
लोनासोआ

3
@ मुझे लगता है कि आप इस बात की अवहेलना कर रहे हैं कि एक कमेटी में जोड़ी गई / हटाई गई लाइनें अन्य कमिटों के समान हो सकती हैं, फ़े जब शाखाओं को मर्ज करते हैं आदि जो अभी भी उसी कुल की ओर गिनती करते हैं। इसके अतिरिक्त, उपयोगकर्ता प्रोफाइल के लिए जीएथब योगदान आँकड़े केवल डिफ़ॉल्ट शाखा या जीएच-पेज से गिने जाते हैं, इसलिए कमिट / लाइन आँकड़े के लिए कुछ ऐसा ही हो सकता है: help.github.com/articles/… । यह भी ध्यान दें कि उपयोगकर्ता प्रोफ़ाइल आँकड़े केवल पिछले वर्ष की गणना करते हैं, लेकिन मुझे लगता है कि ग्राफ़ पृष्ठ पर प्रतिबद्ध आँकड़े स्थायी हैं।
ऑर्बिटबोट

38

आप केवल नवीनतम प्रतिबद्ध का उपयोग करके क्लोन कर सकते हैं git clone --depth 1 <url>और फिर लिंग्विस्ट का उपयोग करके अपना स्वयं का विश्लेषण कर सकते हैं , वही सॉफ्टवेयर गिथब का उपयोग करता है। यही एकमात्र तरीका है जो मुझे पता है कि आप कोड की लाइनें प्राप्त करने जा रहे हैं ।

एक अन्य विकल्प एपीआई का उपयोग उन भाषाओं को सूचीबद्ध करने के लिए है जो परियोजना का उपयोग करती है । यह उन्हें लाइनों में नहीं बल्कि बाइट्स में देता है। उदाहरण के लिए...

$ curl https://api.github.com/repos/evalEmpire/perl5i/languages
{
  "Perl": 274835
}

हालांकि नमक के एक दाने के साथ, उस परियोजना में YAML और JSON शामिल हैं , जिसे वेब साइट स्वीकार करती है, लेकिन एपीआई नहीं करता है।

अंत में, आप यह पूछने के लिए कोड खोज का उपयोग कर सकते हैं कि कौन सी फाइलें किसी दी गई भाषा से मेल खाती हैं। यह उदाहरण पूछता है कि पर्ल में कौन सी फाइलें पर्ल हैं। https://api.github.com/search/code?q=language:perl+repo:evalEmpire/perl5i। यह आपको लाइनें नहीं देगा, और आपको urlप्रत्येक फ़ाइल के लिए रिटर्न का उपयोग करके फ़ाइल का आकार अलग से पूछना होगा ।


कूल, उस के बारे में नहीं जानता था। क्या आप इस बात की पुष्टि कर सकते हैं कि यह जीथब वेबसाइट पर नहीं किया जा सकता है, हालांकि?
हब्रो

मैं इसकी पुष्टि नहीं कर सकता, लेकिन मुझे API या Github वेब साइट पर कुछ भी दिखाई नहीं देता है जो आपको लाइनें देगा। यह सभी बाइट्स या प्रतिशत हैं। क्लोनिंग के बजाय एपीआई के माध्यम से इसे करने के लिए आपका औचित्य क्या है?
श्वेर्न

ठीक है, हालांकि इस जानकारी के लिए धन्यवाद। मैं गितुब समर्थन माँगूँगा।
हब्रो

भाषाविद् अच्छा लग रहा है, लेकिन आप इसे कोड की लाइनें दिखाने के लिए कैसे प्राप्त करते हैं ? ऐसा लगता है कि यह एपीआई की तरह डिफ़ॉल्ट रूप से बाइट दिखाता है।
हब्रो

@ हुब्रो डननो, आपको इसे पैच करना पड़ सकता है।
श्वार्न

33

वर्तमान में Github.com या उनके API-s पर संभव नहीं है

मैंने ग्राहक सहायता से बात की है और पुष्टि की है कि यह github.com पर नहीं किया जा सकता है। उन्होंने हालांकि गीथब टीम के साथ सुझाव पारित किया है, इसलिए उम्मीद है कि भविष्य में यह संभव होगा। यदि हां, तो मुझे इस उत्तर को संपादित करना सुनिश्चित होगा।

इस बीच, रोरी ओ'केन का जवाब एक शानदार विकल्प पर आधारित है clocऔर एक उथले रेपो क्लोन है।


2
सीधे नहीं, लेकिन उनके सांख्यिकी एपीआई के पास वह सभी डेटा है जिसकी आपको स्वयं गणना करने की आवश्यकता है। त्वरित स्क्रिप्ट के लिए मेरा उत्तर नीचे देखें जो ऐसा करता है।
लुईस

12

आप निम्न फ़ंक्शन की तरह धीमे पाने के लिए GitHub API का उपयोग कर सकते हैं

function getSloc(repo, tries) {

    //repo is the repo's path
    if (!repo) {
        return Promise.reject(new Error("No repo provided"));
    }

    //GitHub's API may return an empty object the first time it is accessed
    //We can try several times then stop
    if (tries === 0) {
        return Promise.reject(new Error("Too many tries"));
    }

    let url = "https://api.github.com/repos" + repo + "/stats/code_frequency";

    return fetch(url)
        .then(x => x.json())
        .then(x => x.reduce((total, changes) => total + changes[1] + changes[2], 0))
        .catch(err => getSloc(repo, tries - 1));
}

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

आप यहाँ से डाउनलोड कर सकते हैं https://chrome.google.com/webstore/detail/github-sloc/fkjjjamhihnjmihibcmdnianbcbccpnn

स्रोत कोड यहां उपलब्ध है https://github.com/martianyi/github-sloc


क्रोम एक्सटेंशन के लिए SLOC का निर्धारण कैसे किया जाता है? सभी फ़ाइल प्रकार? विशिष्ट निर्देशिकाओं को छोड़ दें?
ब्रेट रेइनहार्ड

@BrettReinhard यह प्रति सप्ताह परिवर्धन और विलोपन की संख्या पर आधारित है , मुझे लगता है कि इसमें सभी फाइलें शामिल हैं।
यी काई

क्या केवल पिछले सप्ताह में परिवर्तनों की संख्या वापस नहीं आती है?
जोहान्स की मछली 'ज़ीमके

@ जोहान्सफिश'जिमेके नो, यह हर हफ्ते लौटता है
यी काई

11

फ़ायरफ़ॉक्स Github SLOC पर ऐड-ऑन करता है

मैंने एक छोटा सा फ़ायरफ़ॉक्स एडऑन लिखा है जो गिथब प्रोजेक्ट पेज पर कोड की लाइनों की संख्या को प्रिंट करता है: जीथब एसएलओसी


महान प्लगइन, बहुत उपयोगी! क्या आपको पता है कि निजी रिपोज के साथ काम करना संभव है? ऐसा लगता है कि यह केवल पब्लिक रेपो पर LOC दिखा रहा है।
रोकोको

लिंक मृत है और मैन्युअल रूप से खोज करने के बाद, ऐसा लगता है, दुख की बात है कि यह प्लगइन अब मौजूद नहीं है।
dCSeven

फ़ायरफ़ॉक्स के लिए भी GLOC उपलब्ध कराने के लिए एक अनुरोध है, और डेवलपर विचार के लिए खुला लगता है: github.com/artem-solovev/gloc/issues/23
miyalys

1
@miyalys यह अब किया गया है: addons.mozilla.org/en-US/firefox/addon/gloc
Shachaf Zohar

7

यदि प्रश्न "क्या आप जल्दी से एक गीथब रेपो के नंबर प्राप्त कर सकते हैं ", तो उत्तर अन्य उत्तरों के अनुसार नहीं है।

हालांकि, यदि प्रश्न "क्या आप किसी प्रोजेक्ट की SCALE की जल्दी से जांच कर सकते हैं ", तो मैं आमतौर पर किसी प्रोजेक्ट को उसके आकार को देखकर समझ सकता हूं। बेशक आकार में सभी सक्रिय आवागमन से डेल्टा शामिल होंगे, लेकिन यह एक अच्छा मीट्रिक है क्योंकि परिमाण का क्रम काफी करीब है।

उदाहरण के लिए

"Docker" प्रोजेक्ट कितना बड़ा है?

अपने ब्राउज़र में, api.github.com/repos/ORG_NAME/PROJECT_NAME अर्थात api.github.com/repos/docker/docker दर्ज करें

प्रतिक्रिया हैश में, आप आकार विशेषता पा सकते हैं:

{
    ...
    size: 161432,
    ...
}

इससे आपको परियोजना के सापेक्ष पैमाने का अंदाजा होना चाहिए। संख्या KB में लगती है, लेकिन जब मैंने इसे अपने कंप्यूटर पर चेक किया तो यह वास्तव में छोटा है, भले ही परिमाण का क्रम सुसंगत हो। (161432KB = 161MB, du -s-do do = 65MB)


1
npm install sloc -g
git clone --depth 1 https://github.com/vuejs/vue/
sloc ".\vue\src" --format cli-table
rm -rf ".\vue\"

निर्देश और स्पष्टीकरण

  1. Npm से स्लोक स्थापित करें , एक कमांड लाइन टूल ( Node.js को स्थापित करने की आवश्यकता है)।
npm install sloc -g
  1. क्लोन उथले भंडार (पूर्ण क्लोन की तुलना में तेजी से डाउनलोड)।
git clone --depth 1 https://github.com/facebook/react/
  1. धीमे चलें और उस पथ को निर्दिष्ट करें जिसका विश्लेषण किया जाना चाहिए।
sloc ".\react\src" --format cli-table

sloc आउटपुट को a cli-table, as jsonया के रूप में फॉर्मेट करने का समर्थन करता है csv। फ़ाइलों और फ़ोल्डरों को बाहर करने के लिए नियमित अभिव्यक्ति का उपयोग किया जा सकता है ( एनपीएम पर आगे की जानकारी )।

  1. रिपॉजिटरी फ़ोल्डर हटाएं (वैकल्पिक)

शक्तियों: rm -r -force ".\react\"या मैक / यूनिक्स पर:rm -rf ".\react\"

निष्पादित चरणों के स्क्रीनशॉट (cli-table):

एसीली-टेबल के रूप में स्लो आउटपुट

धीमे उत्पादन (कोई तर्क नहीं):

तर्क के बिना धीमी उत्पादन


यह R फ़ाइलों की तरह काम करने के लिए प्रकट नहीं होता है। R या .Rmd
jzadra

1

sortलाइन काउंट द्वारा फाइलों को व्यवस्थित करने के लिए प्रत्येक फाइल में लाइनों की संख्या से आउटपुट को पाइप करें । git ls-files | xargs wc -l |sort -n



0

टर्मिनल खोलें और निम्नलिखित चलाएँ:

curl https://api.codetabs.com/v1/loc?github=username/reponame
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.