Gitential Datasets for Open Source Projects
收藏github2021-07-22 更新2024-05-31 收录
下载链接:
https://github.com/gitential/datasets
下载链接
链接失效反馈官方服务:
资源简介:
为一些开源项目提取的原始GIT数据,每个目录包含示例CSV文件和一个README文件,其中包含下载链接(Parquet和JSON格式)。计划发布更多数据,包括额外的指标和维度。
This dataset comprises raw Git data extracted from various open-source projects. Each directory includes sample CSV files and a README file that contains download links for datasets in Parquet and JSON formats. Additional data covering extra metrics and dimensions is scheduled for future release.
创建时间:
2018-01-15
原始信息汇总
数据集概述
数据集名称
Gitential Datasets for Open Source Projects
数据集内容
- Commits: 包含每个提交的详细信息,如提交ID、作者信息、提交时间、代码变更等。
- Patches: 记录每个提交中的文件变更,包括文件路径、大小、语言类型等。
- Blames: 提供文件变更的历史责任分配,包括变更的提交ID、作者信息等。
- Tags: 包含项目的标签信息,如标签ID、名称、创建时间等。
数据格式
- CSV
- Parquet
- JSON
数据集结构
Commits
| 列名 | 类型 | 描述 |
|---|---|---|
| id | string | 提交的SHA |
| delay | int64 | 提交创建与应用之间的时间差 |
| age | int64 | 提交与其父提交之间的时间差 |
| ismerge | bool | 是否为合并提交 |
| squashof | int64 | 是否为压缩合并提交 |
| author_name | string | 作者姓名 |
| author_email | string | 作者邮箱地址 |
| committer_name | string | 提交者姓名 |
| committer_email | string | 提交者邮箱地址 |
| author_time | datetime | 作者签名时间戳 |
| committer_time | datetime | 提交者签名时间戳 |
| loc_d | int64 | 删除的行数 |
| loc_i | int64 | 插入的行数 |
| comp_d | int64 | 删除的复杂度 |
| comp_i | int64 | 插入的复杂度 |
| nfiles | int64 | 受影响的文件数 |
| message | string | 提交消息 |
| ndiffs | int64 | 差异数和父提交数 |
| author_email_dedup | string | 去重后的作者邮箱地址 |
| author_name_dedup | string | 去重后的作者姓名 |
| committer_email_dedup | string | 去重后的提交者邮箱地址 |
| committer_name_dedup | string | 去重后的提交者姓名 |
Patches
| 列名 | 类型 | 描述 |
|---|---|---|
| id | string | 所属提交的SHA |
| parent_id | string | 对比的父提交SHA |
| oldpath | string | 变更前文件路径 |
| newpath | string | 变更后文件路径 |
| ismerge | bool | 是否为合并提交 |
| status | string | 文件变更类型 |
| author_time | datetime | 作者签名时间戳 |
| oldsize | int64 | 变更前文件大小 |
| newsize | int64 | 变更后文件大小 |
| language | string | 文件语言 |
| langtype | string | 语言类型 |
| skipped | string | 是否跳过补丁生成 |
| istest | bool | 是否为测试文件 |
| loc_d | int64 | 删除的行数 |
| loc_i | int64 | 插入的行数 |
| comp_d | int64 | 删除的复杂度 |
| comp_i | int64 | 插入的复杂度 |
| loc_d_std | float32 | 删除行数的标准差 |
| loc_i_std | float32 | 插入行数的标准差 |
| comp_d_std | float32 | 删除复杂度的标准差 |
| comp_i_std | float32 | 插入复杂度的标准差 |
| nhunks | int64 | 补丁中的块数 |
| nblames | int64 | 补丁涉及的唯一提交数 |
| blame_loc | int64 | 补丁涉及的行数 |
Blames
| 列名 | 类型 | 描述 |
|---|---|---|
| id | string | 提交的SHA |
| author_email | string | 作者邮箱地址 |
| author_time | datetime | 作者签名时间戳 |
| ismerge | bool | 是否为合并提交 |
| newpath | string | 变更后文件路径 |
| istest | bool | 是否为测试文件 |
| blame_id | string | 涉及的提交SHA |
| loc_d | int64 | 涉及的行数 |
| language | string | 文件语言 |
| blame_author_email | string | 涉及作者的邮箱地址 |
| blame_author_time | datetime | 涉及作者的签名时间戳 |
| blame_ismerge | bool | 涉及的提交是否为合并提交 |
| author_email_dedup | string | 去重后的作者邮箱地址 |
| author_name_dedup | string | 去重后的作者姓名 |
Tags
| 列名 | 类型 | 描述 |
|---|---|---|
| id | string | 标签的SHA |
| name | string | 标签名称 |
| message | string | 标签消息 |
| type | int64 | Git对象类型 |
| author_time | datetime | 标签创建时间戳 |
数据集下载
- 可通过提供的下载链接获取Parquet和JSON格式的数据文件。
数据集用途
- 用于分析开源项目的开发活动和代码变更历史。
搜集汇总
数据集介绍

构建方式
Gitential Datasets for Open Source Projects 数据集通过 libgit2 工具从多个开源项目中提取原始 GIT 数据构建而成。数据以 CSV 文件形式存储,并提供了 Parquet 和 JSON 格式的下载链接。每个目录包含样本数据文件和一个 README 文件,详细描述了数据的结构和下载方式。未来计划发布更多包含额外指标和维度的数据集,用户可以通过提交 issue 请求其他仓库或项目的数据。
特点
该数据集涵盖了多个维度的开源项目开发数据,包括提交记录、补丁、责任归属和标签等。提交记录表详细记录了每次提交的 SHA、延迟、作者信息、时间戳、代码行数变化等关键信息。补丁表则记录了每个文件在提交中的变化情况,包括文件路径、修改类型、文件大小变化等。责任归属表提供了代码行变更的详细来源信息,标签表则记录了项目的轻量级和注释标签信息。这些数据为研究开源项目的开发流程、代码质量和开发者行为提供了丰富的基础。
使用方法
用户可以通过下载 Parquet 或 JSON 格式的数据文件,使用 Python 的 Pandas 库进行数据读取和分析。首先需要安装 PyArrow 依赖以支持 Parquet 文件的读取。下载数据文件后,用户可以使用 `pd.read_parquet()` 或 `pd.read_json()` 方法加载数据,并通过 Pandas 提供的丰富功能进行数据探索和分析。例如,可以提取提交记录中的关键字段,如提交 ID 和提交信息,进行进一步的研究或可视化。
背景与挑战
背景概述
Gitential Datasets for Open Source Projects 数据集由Gitential团队创建,旨在为开源项目的版本控制数据提供结构化的分析基础。该数据集通过libgit2工具从多个开源项目中提取原始Git数据,并以CSV、Parquet和JSON格式发布。数据集的核心研究问题围绕开发者行为分析、代码变更模式以及项目演化趋势展开。通过提供详细的提交、补丁、标签等数据,该数据集为软件工程领域的研究者提供了丰富的实证基础,推动了开源项目管理和开发者行为研究的深入发展。
当前挑战
Gitential数据集在解决开源项目版本控制数据分析问题时面临多重挑战。首先,数据提取与清洗过程中,如何准确解析Git提交信息、合并冲突以及处理复杂的代码变更历史是一个技术难点。其次,构建过程中需处理大规模数据的存储与高效查询问题,尤其是在Parquet和JSON格式之间的转换与优化上。此外,数据集中涉及的多维度指标(如代码复杂度、开发者行为模式等)的计算与标准化也带来了额外的复杂性。这些挑战要求数据集构建者在数据处理、存储和计算效率上具备高度的技术能力。
常用场景
经典使用场景
Gitential Datasets for Open Source Projects 数据集广泛应用于开源项目的代码提交分析领域。通过提取和整理Git提交记录、补丁文件以及代码责任归属信息,该数据集为研究者提供了丰富的代码演化数据。经典的使用场景包括分析开发者的贡献模式、代码变更的频率与规模,以及代码库的维护趋势。这些数据为开源项目的健康度评估提供了有力支持。
实际应用
在实际应用中,Gitential数据集被广泛用于开源项目的管理和优化。企业可以利用该数据集评估开发团队的工作效率,识别代码库中的潜在风险,并优化开发流程。此外,该数据集还为自动化代码审查工具和缺陷预测模型提供了训练数据,提升了软件开发的智能化水平。
衍生相关工作
基于Gitential数据集,许多经典研究工作得以展开。例如,研究者开发了基于提交历史的代码质量评估模型,以及基于责任归属信息的缺陷预测算法。此外,该数据集还推动了开源社区协作模式的研究,衍生出多篇关于开发者行为分析和代码库演化规律的学术论文。
以上内容由遇见数据集搜集并总结生成



