গিথুব কীভাবে কোনও রেপোতে ভাষার শতাংশ গণনা করতে পারে?


24

আমার এতে রুবি এবং পিএইচপি কোড সহ একটি রেপো রয়েছে।

গিথুব বলেছেন আমার রেপো 74৪.৮% পিএইচপি এবং ২৫.২% রুবি

আমি এটা বুঝতে পারি না কিভাবে হতে পারে। যখন আমি আমার প্রকল্পের 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

রুবি সবসময় আরও কিছু আছে বলে মনে হয়।

আমি কিছু অনুপস্থিত করছি?


এটি সত্যই কোনও গিথুব সহায়তা সাইটের / ফোরামে অন্তর্ভুক্ত।
ডেডএমজি

9
পরীক্ষা করে দেখুন ভাষাবিদ , ভাষা সনাক্ত এবং ভাষা ভাঙ্গন গ্রাফ জেনারেট করার জন্য GitHub এর লাইব্রেরি।
ইয়ানিস 16

1
@ ডেড এমএমজি যদি এটি গিথুবের সহায়তা সাইট / ফোরামে থাকত তবে আমি এটি দেখতে পেতাম না। অতএব, আমি এই আকর্ষণীয় প্রশ্ন এখানে যে সত্য পছন্দ।
JW01

উত্তর:


21

গিথুব কোনও প্রকল্পের ভাষাগুলি সনাক্ত করতে ভাষাতত্ত্ববিদ ব্যবহার করে ।

ভাষাতত্ত্ববিদ ওপেন সোর্স। উত্স ফাইলগুলি সন্ধান করুন এবং আপনি পাবেন:

মধ্যে /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.