【gerrit】【技巧】如何获取gerrit库入库统计信息之一——概述

简介: 【gerrit】【技巧】如何获取gerrit库入库统计信息之一——概述

引言


  • 有时需要统计团队人员向Gerrit库中提交代码的情况、某段时间某个库的修改情况、某个文件的修改情况等,此时,需要对gerrit库的入库情况进行检索,分析并统计。实际的操作方式比较多,本文将对具体的方式做一整理。


gerrit方式


gerrit网页客户端上的search bar


  • 对应下图中的Search term位置,里面填上搜索条件就可以列出所有满足条件的结果;



ssh命令行方式


  • 有一组在命令行用的命令,是透过ssh方式来访问的,譬如


ssh -p 29418 username@host gerrit --help


可以看到具体的子命令;


  • 其中有个子命令是query,和第一种方式差不多,但可以将查询结果以txt或者json的格式导出,比如下面命令,可以查询在2022-10-01到2022-11-01之间一个月,提交到以TEST_为开头的所有项目有效(merged)提交信息:


ssh -p 29418 qxhgd@gerrit.XXX.com gerrit query --format=JSON --current-patch-set status:merged branch:master projects:TEST_ before:2022-11-01 after:2022-10-01


RESTful API


  • gerrit提供了很多RESTful API,这个方法是最全面最强大也最复杂的,具体的api可以参考documentation


  • 一个例子:


Request如下:


  GET /changes/myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940 HTTP/1.0


对应Response如下:


  HTTP/1.1 200 OK
  Content-Disposition: attachment
  Content-Type: application/json; charset=UTF-8
  )]}'
  {
    "id": "myProject~master~I8473b95934b5732ac55d26311a706c9c2bde9940",
    "project": "myProject",
    "branch": "master",
    "change_id": "I8473b95934b5732ac55d26311a706c9c2bde9940",
    "subject": "Implementing Feature X",
    "status": "NEW",
    "created": "2013-02-01 09:59:32.126000000",
    "updated": "2013-02-21 11:16:36.775000000",
    "mergeable": true,
    "insertions": 34,
    "deletions": 101,
    "_number": 3965,
    "owner": {
      "name": "John Doe"
    }
  }


  • 此种方式配合编程语言之后,功能非常强大,如可使用python的pygerrit2库来操作上述api。


git方式


gitlog命令


  • 下面命令,可以查询qxhgd自2022年11月1日开始提交commit的次数:


git log --author=qxhgd--since="2022-11-01" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l;


gitstats工具


当前gitstats所生成统计信息常用分为如下几类:


  • 常规的统计: 文件总数,行数,提交量,作者数。


  • 活跃性: 每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。


  • 作者数: 列举所有的作者(提交数,第一次提交日期,最近一次的提交日期),并按月和年来划分。


  • 文件数:按日期划分,按扩展名名划分。


  • 行数: 按日期划分。



界面工具


  • git的GUI界面工具很多,常见的如TortoiseGit和Sourcetree等;


TortoiseGit


  • TortoiseGit是一款开源的git的版本控制系统,也叫海龟git,其提供了人性化的图形化界面,不用像Git一样输入许多语句,在其界面上可以根据需要检索相关信息:



Sourcetree


它是由Atlassian开发的免费Git图形界面工具,可以操作任何Git库,对git的操作也比较友好。


相关文章
|
数据可视化 Ubuntu Linux
研发实用工具,推荐一款代码统计神器GitStats
研发实用工具,推荐一款代码统计神器GitStats
2142 0
研发实用工具,推荐一款代码统计神器GitStats
使用Omnipeek进行Wifi/P2P抓包
本文介绍了如何安装和配置Omnipeek软件,以及如何使用它来抓取Wifi和P2P数据包,特别适用于解决如Mirracast投屏连接失败等问题。
1373 1
在Linux中,ps aux 中的 VSZ 代表什么意思?RSS 代表什么意思?
在Linux中,ps aux 中的 VSZ 代表什么意思?RSS 代表什么意思?
|
Android开发
Android基础知识:什么是Fragment?与Activity的区别是什么?
Android基础知识:什么是Fragment?与Activity的区别是什么?
3112 54
|
存储 SQL 编解码
阿里 移动端(Android)编码规范
为指导 Android 开发者更加高效、高质量地进行 App 开发,呈现给用户体验好、性能优、稳定性佳、安全性高的产品。 本手册以开发者为中心视角分为Java语言规范,Android 资源文件命名与使用,Android 基本组件,UI 与布局,进程、线程与消息通信,文件与数据库,Bitmap、Drawable 与动画,安全,其他等九大部分,根据约束力强弱,规约依次分为强制、推荐、参考三大类:
2139 0
|
存储 Android开发
安卓app,MediaPlayer播放本地音频 | 按钮控制播放和停止
在Jetpack Compose中,不直接操作原生Android组件如`Button`和`MediaPlayer`,而是使用Compose UI构建器定义界面并结合ViewModel管理音频播放逻辑。以下示例展示如何播放本地音频并用按钮控制播放/停止:创建一个`AudioPlayerViewModel`管理`MediaPlayer`实例和播放状态,然后在Compose UI中使用`Button`根据`isPlaying`状态控制播放。记得在`MainActivity`设置Compose UI,并处理相关依赖和权限。
|
开发工具 git
一文教你如何设置git commit模板规范
一文教你如何设置git commit模板规范
|
Java 开发工具 git
|
网络安全 API 开发工具
【Python】【应用】Python应用之玩转gerrit系列之一——搭建基础环境
【Python】【应用】Python应用之玩转gerrit系列之一——搭建基础环境
1259 0
【Python】【应用】Python应用之玩转gerrit系列之一——搭建基础环境