Skip to main content

An OpenSource Python package for the extraction of fine-grained and time-stamped co-editing networks from git repositories.

Project description

Tests Documentation Status

git2net

git2net is an Open Source Python package that facilitates the extraction of co-editing networks from git repositories.

Download and installation

git2net is pure python code. It has no platform-specific dependencies and thus works on all platforms. The only requirement is a version of git >= 2.0. Assuming you are using pip, you can install latest version of git2net by running:

> pip install git2net

This also installs the necessary dependencies. git2net depends on the python-Levenshtein package to compute Levenshtein distances for edited lines of code. On sytems running Windows, automatically compiling this C based module might fail during installation. In this case, unofficial Windows binaries can be found here, which might help you get started.

How to use git2net

Tutorials

After installation, we suggest to check out our tutorials, detailing how to get started using git2net. We provide tutorials covering different aspects of analysing your repository with git2net. You can directly interact with the notebooks in Binder, or view them in NBViewer via the badges below.

Binder NBViewer

In addition, we provide links to the individual tutorial notebooks below:

Tutorial Binder Google Colab NBViewer
1. Cloning a repository for analysis Binder Open Cloning Tutorial In Google Colab NBViewer
2. Mining git repositories with git2net Binder Open Mining Tutorial In Google Colab NBViewer
3. Author disambiguation with gambit Binder Open Disambiguation Tutorial In Google Colab NBViewer
4. Network analysis with pathpy Binder Open Network Tutorial In Google Colab NBViewer
5. Database-based analyses Binder Open Database Tutorial In Google Colab NBViewer
6. Computing file complexity git2net Binder Open Database Tutorial In Google Colab NBViewer

Documentation

git2net's documentation is available at git2net.readthedocs.io.

Usage examples

We have published some motivating results as well as details on the mining algorithm in "git2net - Mining Time-Stamped Co-Editing Networks from Large git Repositories".

In "Analysing Time-Stamped Co-Editing Networks in Software Development Teams using git2net", we use git2net to mine more than 1.2 million commits of over 25,000 developers. We use this data to test a hypothesis on the relation between developer productivity and co-editing patterns in software teams.

Finally, in "Big Data = Big Insights? Operationalising Brooks' Law in a Massive GitHub Data Set", we mine a corpus containing over 200 GitHub repositories using git2net. Based on the resulting data, we study the relationship between team size and productivity in OSS development teams. If you want to use this extensive data set for your own study, we made it publicly available on zenodo.org.

DOI

How to cite git2net

@inproceedings{gote2019git2net,
  title={git2net: {M}ining time-stamped co-editing networks from large git repositories},
  author={Gote, Christoph and Scholtes, Ingo and Schweitzer, Frank},
  booktitle={Proceedings of the 16th International Conference on Mining Software Repositories},
  pages={433--444},
  year={2019},
  organization={IEEE Press}
}

@article{gote2021analysing,
  title={Analysing time-stamped co-editing networks in software development teams using git2net},
  author={Gote, Christoph and Scholtes, Ingo and Schweitzer, Frank},
  journal={Empirical Software Engineering},
  volume={26},
  number={4},
  pages={1--41},
  year={2021},
  publisher={Springer}
}

License

This software is licensed under the GNU Affero General Public License v3 (AGPL-3.0).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git2net-1.8.0.tar.gz (51.2 kB view details)

Uploaded Source

Built Distribution

git2net-1.8.0-py3-none-any.whl (51.4 kB view details)

Uploaded Python 3

File details

Details for the file git2net-1.8.0.tar.gz.

File metadata

  • Download URL: git2net-1.8.0.tar.gz
  • Upload date:
  • Size: 51.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for git2net-1.8.0.tar.gz
Algorithm Hash digest
SHA256 a83caea0147eb3cbf2926a92070c632dbf2cb2ce010b3f22b8ade76f73aa1700
MD5 e4a339ee459d7c5f4e32dbb1e7ea98ef
BLAKE2b-256 f3247a2f9a16800d4a44e205a1d998ad383169f9719ae25dfeb78e54a49de61c

See more details on using hashes here.

File details

Details for the file git2net-1.8.0-py3-none-any.whl.

File metadata

  • Download URL: git2net-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 51.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for git2net-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 95865c6ef02d69489acf575eb90599320885f801b588cf64579d8c51e24ba07f
MD5 507c11001a75b3f740e68dd368e0985c
BLAKE2b-256 796873470b67fd9b5beb654b9e99654db0af48df42c69e73931e9282d83a2c99

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page