Skip to content

Roadmap & Limitations

TS-Git is currently in alpha and under active development. This page outlines what’s currently implemented, what’s planned, and known limitations.

CommandStatusNotes
init✅ CompleteInitialize repositories with custom default branch
add✅ CompleteStage files individually or all at once
remove✅ CompleteRemove files from index
commit✅ CompleteCreate commits with author info
status✅ CompleteCheck working tree and staging area status
log✅ CompleteView commit history
branch✅ CompleteCreate, list, and delete branches
checkout✅ CompleteSwitch between branches
reset✅ CompleteUnstage files
diff✅ CompleteShow changes with multiple output formats
  • Pluggable filesystem adapters - Memory, Node.js, Tauri, ZenFS, and custom adapters
  • TypeScript-first - Fully typed API
  • Browser support - Run Git operations in the browser
  • CLI interface - Optional embedded terminal with CommandParser
  • Status matrix - Detailed file status information
  • Multiple diff formats - Patch, stat, name-only, name-status

These require network layer implementation:

  • clone - Clone remote repositories
  • fetch - Download objects from remote
  • pull - Fetch and merge
  • push - Update remote refs
  • remote - Manage tracked repositories
  • merge - Join development histories
  • rebase - Reapply commits on top of another base
  • cherry-pick - Apply changes from specific commits
  • stash - Stash changes
  • tag - Create, list, or delete tags
  • config - Get/set repository options
  • show - Show various types of objects
  • Index version 4 is not supported; use Git index version 2 or 3
  • Unmerged (multi-stage) index entries have limited support
  • Rename detection (-M, -C) - Files moved or copied appear as separate deletions and additions
  • Merge-base diffs (--merge-base, A...B syntax) - Triple-dot notation not supported
  • Binary files - Detected but content diffing is limited
  • No-index mode (--no-index) - Comparing paths outside a git repository not supported
  • Range notation (A^!, A^@) - Special revision range syntaxes not supported
  • Word diff (--word-diff) - Word-level diffs not supported
  • Color output - ANSI color codes not supported
  • Conflict resolution - Full conflict semantics not implemented
  • Submodules - Not supported
  • Hooks - Git hooks not supported
  • Signed commits - GPG signing not supported
  • Basic repository operations
  • Branching and merging basics
  • File operations
  • Diff and status
  • HTTP(S) transport
  • Clone and fetch
  • Push operations
  • Remote management
  • Merge strategies
  • Rebase
  • Cherry-pick
  • Stash
  • Tags
  • Packfile optimization
  • Delta compression
  • Streaming for large files
  • Better conflict handling

TS-Git is open source and contributions are welcome! Check out the GitHub repository to:

  • Report issues
  • Suggest features
  • Submit pull requests

⚠️ Warning: As this is alpha software, APIs may change. We follow semver and will document breaking changes in release notes.