Githubはレポの言語割合をどのように計算しますか?


24

RubyとPHPコードを含むリポジトリがあります。

Githubによると、私のレポはPHP 74.8%、Ruby 25.2%です

私はこれがどのようになり得るか理解していません。プロジェクトの2つの言語を比較すると:

# 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には常にもっと多くの機能があるようです。

何か不足していますか?


これは本当にGithubヘルプサイト/フォーラムに属します。
-DeadMG

9
言語を検出し、言語内訳グラフを生成するためのGitHubのライブラリであるLinguistを調べてください。
ヤニス

1
@DeadMG Githubのヘルプサイト/フォーラムにあった場合、私はそれを見なかったでしょう。したがって、この興味深い質問がここにあるという事実が好きです。
JW01

回答:


21

githubはLinguistを使用してプロジェクト内の言語を検出します。

言語学者はオープンソースです。ソースファイルを調べると、次のことがわかります。

/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

/lib/linguist/file_blob.rb

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

そのため、実際にファイルサイズを使用して言語の割合を決定します。

また、バイナリデータ、ベンダーファイル、生成されたファイル、およびプログラム以外のファイルは除外されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.