Skip to content

Latest commit

 

History

History
212 lines (208 loc) · 4.97 KB

File metadata and controls

212 lines (208 loc) · 4.97 KB

Roadmap

  • Configuration
    • Parsing
    • Includes
    • Writing
  • Object IDs
    • SHA‐256
    • SHA‐1
  • Object model (incl., parse, serialize)
    • Blobs
    • Trees
      • File mode definitions
      • Entry insertion ordering
      • Traversal
      • Pathspec
    • Commits
    • Annotated tags
    • Stored objects
  • Signed objects
    • Signed object payload/signature extraction
    • Signature verification
  • Reading object stores
    • Pluggable interface
    • Chain lookup store
    • Mix lookup store
    • Reading loose objects
    • Reading from bundles
    • Promisor remotes
    • Alternates
    • Reading packed objects
      • Pack index lookups
      • Delta caching
      • Delta application
      • Pack‐wide bloom filters
      • Multi pack indexes
  • Writing objects
    • Loose object writing
  • Misc bundle features
    • Writing bundles
  • Misc packfile features
    • Writing pack indexes
    • Writing reverse pack indexes
    • Writing packfiles
      • Writing thin packs
      • Compressing deltas
        • Delta islands
    • Pack verification
  • Compression
    • Plugabble compression algorithms
    • ZLIB support
    • DEFLATE optimizations
    • Adler‐32 SIMD optimizations
  • References
    • Detached references
    • Symbolic references
    • Name verification/resolution
    • Annotated tag ref peeling
    • Describe
    • Revision syntax
    • Namespaces
    • Replace refs, grafts
  • Reference stores
    • Chain lookup store
    • Files reference store
      • Reading loose refs
      • Reading packed refs
      • Atomic writes
      • Batched writes
      • Packing refs
      • Reflogs
    • Reftable
  • Reachability
    • Have/wants walks
    • Is ancestor
    • Merge bases
    • Commit graph
      • Changed path bloom filters
      • Chained graphs
      • Writing
    • Reachability bitmaps
      • For a single packfile
      • For Multi pack indexes
  • Misc repository
    • 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
    • Tree diffing
      • Similarity/rename/copy detection
    • Multi‐way diffs
    • Patch‐id
    • Range‐diff
    • Blob diffing
      • Word diffs
      • 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
    • pkt-line
    • side-band-64k
    • Ingesting packfiles
      • Quarantine areas
      • Un‐thinning thin packs
    • Version 0, version 1 protocols
      • Server side
        • Reference advertisement
        • Capability negotiation
        • Receive
        • "Upload"
      • Client side
        • Send
        • Fetch
    • Version 2 protocol
      • Server side
        • "Upload"
      • Client side
        • Fetch
    • Protocol‐independent logic
      • Common
        • Progress meters
      • Client side
        • Refspec
        • Fetch
          • Partial clones
            • Object filtering
          • Bundle URI
          • Packfile URI
          • Shallow clones
        • Send
      • Server side
        • Upload
          • Object filtering
        • Receive
          • Signed push
          • Hooks
            • Slots
              • After ref negotiation
              • After object unpacking
            • Provided samples
              • Chain
              • 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
        • 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