In che modo Github calcola la percentuale della lingua in un repository?


24

Ho un repository con Ruby e codice PHP in esso.

Github afferma che il mio repository è il 74,8% di PHP e il 25,2% di rubino

Non capisco come possa essere. Quando confronto le 2 lingue nel mio progetto:

# Count how many files:

# Ruby
ls | grep ".*\.rb" | wc -l
# returns 10

#PHP
ls | grep ".*\.php" | wc -l
# returns 1


# Count how many lines, words, chars:

# Ruby
cat *.rb | wc
# returns 229, 812, 5303

# PHP
cat *.php | wc
# returns 102, 473, 2760

Sembra che Ruby ne abbia sempre di più.

Mi sto perdendo qualcosa?


Questo appartiene davvero a un sito / forum di aiuto di Github.
DeadMG

9
Dai un'occhiata a Linguist , la libreria di GitHub per il rilevamento delle lingue e la generazione di grafici di suddivisione delle lingue.
yannis,

1
@DeadMG Se fosse sul sito / forum di assistenza di Github non l'avrei visto. Quindi, mi piace il fatto che questa domanda interessante sia qui.
JW01

Risposte:


21

github utilizza Linguist per rilevare le lingue in un progetto.

Il linguista è open source. guarda i file sorgente e troverai:

nel /bin/linguist

repo.languages.sort_by { |_, size| size }.reverse.each do |language, size|
  percentage = ((size / repo.size.to_f) * 100).round
  puts "%-4s %s" % ["#{percentage}%", language]
end

nel /lib/linguist/file_blob.rb

 # Public: Get byte size
 #
 # Returns an Integer.
 def size
   File.size(@path)
 end

quindi utilizza effettivamente le dimensioni dei file per determinare la percentuale della lingua.

tenere inoltre presente che sono esclusi i dati binari, i file venduti, i file generati e i file non di programma.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.