如何簡單利用git_stats腳本統計項目的代碼量(以及win平台使用時的錯誤排除)


廢話不多說,先放上幾張插件生成的頁面的預覽圖

(頁面主頁)

(每日提交量)

(代碼行數統計,因為是練習項目,很多代碼是copy的,不要在意細節)

  預覽大致就到這里,當然還有很多其他功能,大家可以自己去嘗試了解,我這里簡單來普及下如何安裝和使用這個插件。(win平台運行會存在一些bug,之后也會普及下如何排除這些bug)

  首先這個插件的名字叫git_stats,如何去下載安裝這個插件呢,輸入命令 $ gem install git_stats  //就可以了 ,不過這個命令的前提時你安裝了ruby,ruby安裝很簡單,如果你沒有安裝可以從官網進行下載,順便附上下載鏈接:https://www.ruby-lang.org/en/downloads/    (ps:如果本地計算機ruby版本過舊無法安裝使用stats的話,請安裝最新版本ruby)

  當你安裝完git_stats的時候,理論上你就可以使用它了,是不是很方便(linux和mac的都是完美適配,win用戶還有一個步驟來解決系統問題存在的字符異常),我們用git-bash進入我們想要統計的項目根目錄,然后輸入命令 git_stats     //就會顯示你可以運行的命令,這里如果想要生成你的項目統計報告的話,輸入git_stats generate 就可以在項目文件夾下生成一個stats文件夾,文件夾里面的index.html打開就是我先前展示的網頁了,整個統計過程還算比較快,也可能是我項目比較小的原因?

  接下來我來講一些win用戶在使用的過程中存在的一個坑,就是在輸入git_stats generate 之后相信大家都會看到一個嚴重異常,以及生成的index文件無法打開吧,如果問題是:cannot get it working - fatal: |: no such path in the working tree. 那么不要擔心,這個問題是因為win和linux的git命令有些微區別導致的,我們只需要改動腳本中的幾個小文件就可以了。這個問題在github上有人給出了答案,外語比較好的話可以直接看我提供的地址:https://github.com/tomgi/git_stats/pull/77/files

  簡單來說就是改動你的git_stats插件中的4個文件,你問我你的這個插件裝在哪里?在命令行輸入gem environment  就會出來一大串,其中的 - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8 就是你的安裝路徑,點進去,然后改動以下4個文件,

【文件1】lib/git_stats/git_data/comment_stat.rb,28行改成

stat_line = commit.repo.run("git show #{commit.sha} | gawk 'BEGIN {adds=0; dels=0} {if ($0 ~ /^\\+#{escaped_string}/) adds++; if ($0 ~ /^\-#{escaped_string}/) dels++} END {print adds \" insertions \" dels \" deletes\"}'").lines.to_a[0]

【文件2】lib/git_stats/git_data/repo.rb,49行改成

@commits ||= run_and_parse("git rev-list --pretty=format:%h^|%at^|%ai^|%aE #{commit_range} #{tree_path} | grep -v commit").map do |commit_line|

79行后增加

def files_by_extension_count
Hash.new
end

【文件3】lib/git_stats/stats_view/view.rb,31行改成

active_page: "authors/#{author.dirname}/#{template}")

【文件4】spec/command_runner_spec.rb 路徑下新建文件

 # -*- encoding : utf-8 -*-
#require 'spec_helper'
require '. b/git_stats/command_runner'
require 'shellwords'

RSpec.describe GitStats::CommandRunner do
  let(:runner) { build(:runner) }

  describe 'command runner' do
    it 'should not treat pipe inside single quotes as a stream operator' do
     runner = GitStats::CommandRunner.new

     command = "git rev-list --pretty=format:%h^|%at^|%ai^|%aE HEAD . | grep -v commit"
     result = runner.run(".",command)
      expect(result).to match(/\+.+|.+|.+|.+/)
    end
  end
end 
【========================分割線===========================】
一共就4個文件需要簡單改動一下,如果看我寫的不是很清楚可以去我提供的網站去復制黏貼,還是比較方便的。
然后再嘗試下在你的項目中運行你的stats,是不是可以正常運行了?如果有成功的小伙伴歡迎點贊:D!
這是這個插件的gihub地址:https://github.com/tomgi/git_stats
 
當然還有一款圖形界面做的比較華麗的統計插件,這個筆者暫時也沒嘗試過,附上地址,歡迎嘗試小伙伴去嘗試,順便可以把相關使用心得和我分享一下
插件地址:https://github.com/IonicaBizau/git-stats

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM