Github은 리포지토리에서 언어 비율을 어떻게 계산합니까?


24

Ruby 및 PHP 코드가있는 저장소가 있습니다.

Github에 따르면 내 리포는 PHP 74.8 %, 루비 25.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

루비는 항상 더 많은 것 같습니다.

뭔가 빠졌습니까?


이것은 실제로 Github 도움말 사이트 / 포럼에 속합니다.
DeadMG

9
언어를 감지하고 언어 분석 그래프를 생성하는 GitHub 라이브러리 Linguist를 확인하십시오 .
yannis

1
@DeadMG 그것이 Github의 도움말 사이트 / 포럼에 있었다면 그것을 보지 못했을 것입니다. 그러므로 저는이 흥미로운 질문이 여기 있다는 사실을 좋아합니다.
JW01

답변:


21

github은 언어학 자를 사용 하여 프로젝트에서 언어 를 감지합니다.

언어학자는 오픈 소스입니다. 소스 파일을 살펴보면 다음을 찾을 수 있습니다.

...에서 /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.