Github bir repodaki dil yüzdesini nasıl hesaplar?


24

İçinde Ruby ve PHP kodları olan bir repo var.

Github, depomun% 74.8'i PHP ve% 25.2'i Ruby olduğunu söylüyor

Bunun nasıl olabileceğini anlamıyorum. Projemdeki 2 dili karşılaştırdığımda:

# 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

Ruby her zaman daha fazlasına sahip görünüyor.

Bir şey mi eksik?


Bu gerçekten bir Github yardım sitesine / forumuna ait.
DeadMG

9
Dil tespiti ve dil dağılımı grafikleri oluşturmak için GitHub'ın kütüphanesi olan Dilbilimci'ye göz atın .
yannis,

1
@DeadMG Github'ın yardım sitesinde / forumunda olsaydı, bunu görmezdim. Dolayısıyla, bu ilginç sorunun burada yer almasından hoşlanıyorum.
JW01

Yanıtlar:


21

github bir projedeki dilleri tespit etmek için Linguist kullanıyor .

Dilbilimci açık kaynak kodludur. kaynak dosyalara bakın ve şunları bulacaksınız:

içinde /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

içinde /lib/linguist/file_blob.rb

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

bu nedenle, dil yüzdesini belirlemek için aslında dosya boyutlarını kullanır.

Ayrıca, ikili verilerin, satılan dosyaların, oluşturulan dosyaların ve program dışı dosyaların hariç tutulduğunu unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.