Skip to content

Commit a0cbcc2

Browse files
codexByron
authored andcommitted
Merge gitdb into the GitPython repository
git-subtree-dir: gitdb git-subtree-mainline: b3d9e00 git-subtree-split: 2da3232
2 parents b3d9e00 + 2da3232 commit a0cbcc2

71 files changed

Lines changed: 7405 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

gitdb/.coveragerc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[run]
2+
source = gitdb
3+
4+
; to make nosetests happy
5+
[report]
6+
include = */gitdb/*
7+
omit = */gitdb/ext/*

gitdb/.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
8+
- package-ecosystem: "gitsubmodule"
9+
directory: "/"
10+
schedule:
11+
interval: "weekly"
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
2+
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3+
4+
name: Python package
5+
6+
on: [push, pull_request, workflow_dispatch]
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
build:
13+
14+
runs-on: ${{ matrix.os }}
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.13t"]
19+
os: [ubuntu-latest]
20+
experimental: [false]
21+
include:
22+
- python-version: "3.7"
23+
os: ubuntu-22.04
24+
experimental: false
25+
continue-on-error: ${{ matrix.experimental }}
26+
27+
steps:
28+
- uses: actions/checkout@v7
29+
with:
30+
fetch-depth: 0
31+
- name: Set up Python ${{ matrix.python-version }}
32+
uses: actions/setup-python@v7
33+
with:
34+
python-version: ${{ matrix.python-version }}
35+
allow-prereleases: ${{ matrix.experimental }}
36+
- name: Install project and dependencies
37+
run: |
38+
python -m pip install --upgrade pip
39+
pip install .
40+
- name: Lint with flake8
41+
run: |
42+
pip install flake8
43+
# stop the build if there are Python syntax errors or undefined names
44+
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
45+
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
46+
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
47+
- name: Test with pytest
48+
run: |
49+
pip install pytest
50+
ulimit -n 48
51+
ulimit -n
52+
pytest -v

gitdb/.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
MANIFEST
2+
.coverage
3+
build/
4+
dist/
5+
*.pyc
6+
*.o
7+
*.so
8+
.noseids
9+
*.sublime-workspace
10+
*.egg-info

gitdb/.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "smmap"]
2+
path = gitdb/ext/smmap
3+
url = https://github.com/gitpython-developers/smmap.git

gitdb/AUTHORS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Creator: Sebastian Thiel
2+
3+
Contributors:
4+
- Ram Rachum (@cool-RR)

gitdb/LICENSE

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
Copyright (C) 2010, 2011 Sebastian Thiel and contributors
2+
All rights reserved.
3+
4+
Redistribution and use in source and binary forms, with or without
5+
modification, are permitted provided that the following conditions
6+
are met:
7+
8+
* Redistributions of source code must retain the above copyright
9+
notice, this list of conditions and the following disclaimer.
10+
11+
* Redistributions in binary form must reproduce the above copyright
12+
notice, this list of conditions and the following disclaimer in the
13+
documentation and/or other materials provided with the distribution.
14+
15+
* Neither the name of the GitDB project nor the names of
16+
its contributors may be used to endorse or promote products derived
17+
from this software without specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
25+
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30+
31+
32+
Additional Licenses
33+
-------------------
34+
The files at
35+
gitdb/test/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx
36+
and
37+
gitdb/test/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack
38+
are licensed under GNU GPL as part of the git source repository,
39+
see http://en.wikipedia.org/wiki/Git_%28software%29 for more information.
40+
41+
They are not required for the actual operation, which is why they are not found
42+
in the distribution package.

gitdb/MANIFEST.in

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
include VERSION
2+
include LICENSE
3+
include CHANGES
4+
include AUTHORS
5+
include README
6+
include MANIFEST.in
7+
8+
include gitdb/_fun.c
9+
include gitdb/_delta_apply.c
10+
include gitdb/_delta_apply.h
11+
12+
graft gitdb/test
13+
14+
global-exclude .git*
15+
global-exclude *.pyc
16+
global-exclude *.so
17+
global-exclude *.dll
18+
global-exclude *.o

gitdb/Makefile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.PHONY: all clean release force_release
2+
3+
all:
4+
@grep -Ee '^[a-z].*:' Makefile | cut -d: -f1 | grep -vF all
5+
6+
clean:
7+
rm -rf build/ dist/ .eggs/ .tox/
8+
9+
force_release: clean
10+
./build-release.sh
11+
twine upload dist/*
12+
git push --tags origin master

gitdb/README.rst

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
GitDB
2+
=====
3+
4+
GitDB allows you to access bare git repositories for reading and writing. It aims at allowing full access to loose objects as well as packs with performance and scalability in mind. It operates exclusively on streams, allowing to handle large objects with a small memory footprint.
5+
6+
Installation
7+
============
8+
9+
.. image:: https://img.shields.io/pypi/v/gitdb.svg
10+
:target: https://pypi.python.org/pypi/gitdb/
11+
:alt: Latest Version
12+
.. image:: https://img.shields.io/pypi/pyversions/gitdb.svg
13+
:target: https://pypi.python.org/pypi/gitdb/
14+
:alt: Supported Python versions
15+
.. image:: https://readthedocs.org/projects/gitdb/badge/?version=latest
16+
:target: https://readthedocs.org/projects/gitdb/?badge=latest
17+
:alt: Documentation Status
18+
19+
From `PyPI <https://pypi.python.org/pypi/gitdb>`_::
20+
21+
pip install gitdb
22+
23+
SPEEDUPS
24+
========
25+
26+
If you want to go up to 20% faster, you can install gitdb-speedups with::
27+
28+
pip install gitdb-speedups
29+
30+
However, please note that gitdb-speedups is not currently maintained.
31+
32+
REQUIREMENTS
33+
============
34+
35+
* smmap - declared as a dependency, automatically installed
36+
* pytest - for running the tests
37+
38+
SOURCE
39+
======
40+
41+
The source is available in a git repository on GitHub:
42+
43+
https://github.com/gitpython-developers/gitdb
44+
45+
Once the clone is complete, please be sure to initialize the submodule using::
46+
47+
cd gitdb
48+
git submodule update --init
49+
50+
Run the tests with::
51+
52+
pytest
53+
54+
DEVELOPMENT
55+
===========
56+
57+
.. image:: https://github.com/gitpython-developers/gitdb/workflows/Python%20package/badge.svg
58+
:target: https://github.com/gitpython-developers/gitdb/actions
59+
60+
The library is considered mature, and not under active development. Its primary (known) use is in GitPython.
61+
62+
INFRASTRUCTURE
63+
==============
64+
65+
* Discussions
66+
* https://github.com/gitpython-developers/GitPython/discussions
67+
68+
* Issue Tracker
69+
* https://github.com/gitpython-developers/gitdb/issues
70+
71+
LICENSE
72+
=======
73+
74+
New BSD License

0 commit comments

Comments
 (0)