aboutsummaryrefslogtreecommitdiff

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
  • Signed objects
  • [X] Signed object payload/signature extraction
  • [ ] Signature verification
  • [X] Reading object stores
  • [X] Pluggable interface
  • [X] Chain lookup store
  • [X] Mix lookup store
  • [X] Reading loose objects
  • [ ] Reading from bundles
  • [ ] 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
  • [ ] Full pseudoref support
  • 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
    • [ ] Three‐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
    • [X] Worktree‐specific reference name validation
  • 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