【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
2301 0
研发实用工具,推荐一款代码统计神器GitStats
|
安全 数据库 数据安全/隐私保护
使用Omnipeek进行Wifi/P2P抓包
本文介绍了如何安装和配置Omnipeek软件,以及如何使用它来抓取Wifi和P2P数据包,特别适用于解决如Mirracast投屏连接失败等问题。
1701 1
|
XML 开发工具 Android开发
Repo工作原理及常用命令总结——2023.07(下)
Repo工作原理及常用命令总结——2023.07(下)
3670 0
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
1646 0
|
存储 SQL 编解码
阿里 移动端(Android)编码规范
为指导 Android 开发者更加高效、高质量地进行 App 开发,呈现给用户体验好、性能优、稳定性佳、安全性高的产品。 本手册以开发者为中心视角分为Java语言规范,Android 资源文件命名与使用,Android 基本组件,UI 与布局,进程、线程与消息通信,文件与数据库,Bitmap、Drawable 与动画,安全,其他等九大部分,根据约束力强弱,规约依次分为强制、推荐、参考三大类:
2341 0
|
敏捷开发 小程序 持续交付
【规范】Git分支管理,看看我司是咋整的
本文介绍了Git分支管理规范的重要性及其在企业中的应用。通过规范化的分支管理,可加速团队协作、确保代码质量、维护主分支稳定,并支持敏捷开发。文中详细描述了主分支(如master、develop)和辅助分支(如feature、hotfix)的作用,并提供了实际开发流程示例,包括开发前、开发中、提测、预生产和部署上线等阶段的操作方法。旨在帮助团队提高效率和代码质量。
4452 0
【规范】Git分支管理,看看我司是咋整的
|
存储 Android开发
安卓app,MediaPlayer播放本地音频 | 按钮控制播放和停止
在Jetpack Compose中,不直接操作原生Android组件如`Button`和`MediaPlayer`,而是使用Compose UI构建器定义界面并结合ViewModel管理音频播放逻辑。以下示例展示如何播放本地音频并用按钮控制播放/停止:创建一个`AudioPlayerViewModel`管理`MediaPlayer`实例和播放状态,然后在Compose UI中使用`Button`根据`isPlaying`状态控制播放。记得在`MainActivity`设置Compose UI,并处理相关依赖和权限。
|
Android开发
Android监听USB设备插拔
Android监听USB设备插拔
2052 7
|
Unix Shell Linux
linux互斥锁(pthread_mutex)知识点总结
linux互斥锁(pthread_mutex)知识点总结