@@ -9,41 +9,6 @@ implemented, plus aliases and pythongit-specific helpers. The on-disk format is
99byte-for-byte compatible with real ` git ` , and the package optionally installs a
1010drop-in ` git ` console script.
1111
12- ``` text
13- pure-python-git/ (repo root)
14- ├── pyproject.toml
15- ├── README.md this file
16- ├── pythongit/ importable package — at repo root
17- │ ├── __init__.py
18- │ ├── __main__.py `python -m pythongit ...`
19- │ ├── cli.py command dispatch (161 commands)
20- │ ├── repo.py Repository discovery + config
21- │ ├── objects.py blob / tree / commit / tag encode/decode
22- │ ├── refs.py ref resolution, update, reflog hook
23- │ ├── reflog.py append-only ref log
24- │ ├── index.py DIRC v2 with conflict stages
25- │ ├── workdir.py add/rm/status/checkout, tree↔workdir
26- │ ├── diff.py Myers diff + unified-diff renderer
27- │ ├── merge.py merge-base + three-way blob merge
28- │ ├── xdiff.py xdiff port: histogram/Myers diff + xdl_merge
29- │ ├── diffcore.py diffcore-rename: spanhash similarity + matching
30- │ ├── mergeort.py merge-ort tree engine (collect/rename/process)
31- │ ├── ort.py ort adapter → OrtResult(tree, conflicts, index)
32- │ ├── sequencer.py cherry-pick / revert / rebase
33- │ ├── porcelain_merge.py ff + 3-way merge entry point
34- │ ├── patch.py unified-diff parser + applier
35- │ ├── pack.py pack v2 + idx v2, bitmaps, MIDX, streaming writer
36- │ ├── commitgraph.py cached commit-graph reader
37- │ ├── bloom.py changed-path Bloom filters
38- │ ├── protocol.py smart HTTPS clone / fetch / push
39- │ ├── stash.py refs/stash + reflog-backed stash
40- │ ├── ignore.py .gitignore engine
41- │ ├── rerere.py reuse recorded resolution
42- │ └── bridges.py daemon / http-backend / SMTP / Tk / shell-out
43- ├── pure-python-git-shim/ companion distribution (opt-in `git` shim)
44- └── tests/ pytest + script-style integration tests
45- ```
46-
4712## Why does this exist?
4813
4914Sometimes you need ` git ` on a machine where you can't install a real ` git `
0 commit comments