Github如何计算回购中的语言百分比?


24

我有一个包含Ruby和PHP代码的仓库。

Github说我的仓库是74.8%PHP和25.2%Ruby

我不知道这怎么可能。当我比较项目中的两种语言时:

# 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
请查看Linguist,这是GitHub的库,用于检测语言并生成语言分解图。
扬尼斯2012年

1
@DeadMG如果它在Github的帮助站点/论坛上,我不会看到它。因此,我喜欢这个有趣的问题在这里的事实。
2012年

Answers:


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

因此它实际上使用文件大小来确定语言百分比。

还请记住,排除了二进制数据,供应商文件,生成的文件和非程序文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.