繁体   English   中英

如何查询 Git 存储库以用于 MSR(挖掘软件存储库)目的?

[英]How can I query a Git repository for MSR (mining software repositories) purposes?

我需要查询一个 Git 存储库,以便我最终得到以下架构的数据集,其中包含对存储库的所有贡献:

user.id,
user.ip,
contribution.type,
timestamp,
commit.id,
file,
branch,
lines.added,
lines.deleted

例如:

u1,127.0.0.1,add,2015-01-01 00:00,c123456,/path/to/index.html,master,100,0
u1,127.0.0.1,mod,2015-01-01 00:00,c123456,/path/to/page1.html,master,3,6
u1,127.0.0.1,del,2015-01-01 00:00,c123456,/path/to/page2.html,master,0,200
u2,127.0.0.2,mod,2015-01-02 00:00,c654321,/path/to/index.html,master,2,2
u3,127.0.0.3,add,2015-01-03 00:00,c234567,/path/to/topic.html,topic,300,1
u4,127.0.0.4,mod,2015-01-04 00:00,c765432,/path/to/topic.html,topic,21,1

请注意,一行应该代表对文件的一次贡献,而不是一次提交,即一次提交可能跨越多行。

到目前为止,我正在摆弄git log -g --numstat --decorate --source --date=iso --no-merges --all --format=%aE,%h,%ad,%gd 我想我将不得不对输出进行后处理,以便将来自--name-status (contribution_type 和文件)和--numstat (lines. added,lines.deleted)的信息合并到上面显示的格式中。 此外,我还没有弄清楚如何获取 IP 地址——git 存储库在收到“推送”时是否会记录此信息?

使用日志功能,并根据需要转换数据。

我怀疑你会找到所有这些信息 - user.ip 字段没有意义,因为提交不一定在网络上。

结帐codemetrics ,我是作者。 您可能需要进行一些后期处理。 例如,您可能需要为每个分支运行分析。 另外,我不相信 git 存储 IP 地址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM