废话不多说,先放上几张插件生成的页面的预览图

gitlab代码 gitlab代码统计插件_gitlab代码

(页面主页)

gitlab代码 gitlab代码统计插件_git_02

(每日提交量)

gitlab代码 gitlab代码统计插件_ruby_03

(代码行数统计,因为是练习项目,很多代码是copy的,不要在意细节)

  预览大致就到这里,当然还有很多其他功能,大家可以自己去尝试了解,我这里简单来普及下如何安装和使用这个插件。(win平台运行会存在一些bug,之后也会普及下如何排除这些bug)

插件呢,输入命令 $ 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打开就是我先前展示的网页了,整个统计过程还算比较快,也可能是我项目比较小的原因?

gitlab代码 gitlab代码统计插件_ruby_04

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

gitlab代码 gitlab代码统计插件_ruby_05