From ad25bb029ae430ffadfe6afd86bab4eed33a9a76 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Tue, 24 Mar 2026 09:03:13 +0000 Subject: ROADMAP: Split from README --- ROADMAP.md | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 ROADMAP.md (limited to 'ROADMAP.md') diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 00000000..da2b31a8 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,211 @@ +# Roadmap + +* Configuration + * [X] Parsing + * [ ] Includes + * [ ] Writing +* [X] Object IDs + * [X] SHA-256 + * [X] SHA-1 +* [X] Object model (incl., parse, serialize) + * [X] Blobs + * [X] Trees + * [X] File mode definitions + * [X] Entry insertion ordering + * [X] Traversal + * [ ] Pathspec + * [X] Commits + * [X] Annotated tags + * [X] Stored objects +* Further cryptography + * [ ] OpenPGP signatures + * [ ] SSH signatures +* [X] Reading object stores + * [X] Pluggable interface + * [X] Chain lookup store + * [X] Bundle store + * [X] MRU lookup store + * [X] Reading loose objects + * [ ] Promisor remotes + * [ ] Alternates + * [X] Reading packed objects + * [X] Pack index lookups + * [X] Delta caching + * [X] Delta application + * [ ] Pack-wide bloom filters + * [ ] Multi pack indexes +* [ ] Writing objects + * [X] Loose object writing +* Misc bundle features + * [ ] Writing bundles +* Misc packfile features + * [X] Writing pack indexes + * [X] Writing reverse pack indexes + * [ ] Writing packfiles + * [ ] Writing thin packs + * [ ] Compressing deltas + * [ ] Delta islands + * [ ] Pack verification +* Compression + * [ ] Plugabble compression algorithms + * [X] ZLIB support + * [ ] DEFLATE optimizations + * [X] Adler-32 SIMD optimizations +* [X] References + * [X] Detached references + * [X] Symbolic references + * [X] Name verification/resolution + * [X] Annotated tag ref peeling + * [ ] Describe + * [ ] Revision syntax + * [ ] Namespaces + * [ ] Replace refs, grafts +* [X] Reference stores + * [X] Chain lookup store + * [X] Files reference store + * [X] Reading loose refs + * [X] Reading packed refs + * [X] Atomic writes + * [X] Batched writes + * [ ] Packing refs + * [ ] Reflogs + * [ ] Reftable +* Reachability + * [X] Have/wants walks + * [X] Is ancestor + * [X] Merge bases + * [X] Commit graph + * [X] Changed path bloom filters + * [X] Chained graphs + * [ ] Writing + * [ ] Reachability bitmaps + * [ ] For a single packfile + * [ ] For Multi pack indexes +* Misc repository + * [X] Opening relevant stores + * [ ] Creating repositories + * [ ] Filter branch/repo + * [ ] Fast import/export + * [ ] Git notes + * [ ] Git attributes + * [ ] Pseudorefs + * Integrity and maintenance + * [ ] Fsck + * [ ] Repacking + * [ ] Garbage collection + * [ ] Cruft packing + * [ ] Expiration + * [ ] Grep + * [ ] Submodules + * [ ] Worktrees + * [ ] Archive + * [ ] LFS + * [ ] Revision log walk + * [ ] Topological ordering + * [ ] Date ordering + * [ ] Path-limited +* [ ] Diffing + * [ ] Blame + * [ ] Annotate + * [X] Tree diffing + * [ ] Similarity/rename/copy detection + * [ ] Multi-way diffs + * [ ] Patch-id + * [ ] Range-diff + * Blob diffing + * [ ] Word diffs + * [X] Myers + * [ ] Patience + * [ ] Histogram + * [ ] Tree-way + * [ ] Format patch + * [ ] Apply/amend patch +* Branch integration/rewrite/etc methods + * [ ] Merge + * [ ] Recursive + * [ ] ORT + * [ ] Rebase + * [ ] Cherry pick + * [ ] Revert + * [ ] Rerere +* Network protocols and related features + * [X] pkt-line + * [X] side-band-64k + * [X] Ingesting packfiles + * [X] Quarantine areas + * [X] Un-thinning thin packs + * Version 0, version 1 protocols + * [X] Server side + * [X] Reference advertisement + * [X] Capability negotiation + * [X] Receive + * [ ] "Upload" + * [ ] Client side + * [ ] Send + * [ ] Fetch + * Version 2 protocol + * [ ] Server side + * [ ] "Upload" + * [ ] Client side + * [ ] Fetch + * Protocol-independent logic + * Common + * [X] Progress meters + * Client side + * [ ] Refspec + * [ ] Fetch + * [ ] Partial clones + * [ ] Object filtering + * [ ] Bundle URI + * [ ] Packfile URI + * [ ] Shallow clones + * [ ] Send + * Server side + * [ ] Upload + * [ ] Object filtering + * [X] Receive + * [ ] Signed push + * Hooks + * Slots + * [ ] After ref negotiation + * [X] After object unpacking + * Provided samples + * [X] Chain + * [X] Force push rejection +* [ ] Working trees + * [ ] Stashing + * [ ] Ignore rules + * [ ] Checkouts + * [ ] Sparse checkouts + * [ ] CR/LF conversions + * [ ] File mode conversions + * [ ] Indexes + * [ ] Conflict resolution + * [ ] Split index + * [ ] Sparse index + * [ ] Untracked cache + * [ ] Status listing + * [ ] Filesystem monitor + * [ ] Worktree + * [ ] Common directory + * [ ] Worktree-specific references +* Research + * [ ] Dynamic packfiles + * [ ] Compaction; page-sized hole punching + * [ ] Dynamic indexing + * [ ] Linear/extendible/spiral hashing + * [ ] Dynamic reachability bitmaps + +## Not planned + +* CLI tools +* Clone +* Anything reasonably considered "porcelain" +* Credential helper +* Transports +* Auth +* Remote management +* Bisect +* Any use of env vars +* Repository discovery walking + -- cgit v1.3.1-10-gc9f91