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.
Current Status
Section titled “Current Status”✅ Implemented Commands
Section titled “✅ Implemented Commands”| Command | Status | Notes |
|---|---|---|
init | ✅ Complete | Initialize repositories with custom default branch |
add | ✅ Complete | Stage files individually or all at once |
remove | ✅ Complete | Remove files from index |
commit | ✅ Complete | Create commits with author info |
status | ✅ Complete | Check working tree and staging area status |
log | ✅ Complete | View commit history |
branch | ✅ Complete | Create, list, and delete branches |
checkout | ✅ Complete | Switch between branches |
reset | ✅ Complete | Unstage files |
diff | ✅ Complete | Show changes with multiple output formats |
✅ Features
Section titled “✅ Features”- 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
🚧 In Progress / Planned
Section titled “🚧 In Progress / Planned”Remote Operations
Section titled “Remote Operations”These require network layer implementation:
clone- Clone remote repositoriesfetch- Download objects from remotepull- Fetch and mergepush- Update remote refsremote- Manage tracked repositories
Advanced Features
Section titled “Advanced Features”merge- Join development historiesrebase- Reapply commits on top of another basecherry-pick- Apply changes from specific commitsstash- Stash changestag- Create, list, or delete tagsconfig- Get/set repository optionsshow- Show various types of objects
Known Limitations
Section titled “Known Limitations”Index Format
Section titled “Index Format”- Index version 4 is not supported; use Git index version 2 or 3
- Unmerged (multi-stage) index entries have limited support
Diff Limitations
Section titled “Diff Limitations”- Rename detection (
-M,-C) - Files moved or copied appear as separate deletions and additions - Merge-base diffs (
--merge-base,A...Bsyntax) - 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
Other Limitations
Section titled “Other Limitations”- Conflict resolution - Full conflict semantics not implemented
- Submodules - Not supported
- Hooks - Git hooks not supported
- Signed commits - GPG signing not supported
Future Roadmap
Section titled “Future Roadmap”Phase 1: Core Stability (Current)
Section titled “Phase 1: Core Stability (Current)”- Basic repository operations
- Branching and merging basics
- File operations
- Diff and status
Phase 2: Remote Support
Section titled “Phase 2: Remote Support”- HTTP(S) transport
- Clone and fetch
- Push operations
- Remote management
Phase 3: Advanced Features
Section titled “Phase 3: Advanced Features”- Merge strategies
- Rebase
- Cherry-pick
- Stash
- Tags
Phase 4: Performance & Polish
Section titled “Phase 4: Performance & Polish”- Packfile optimization
- Delta compression
- Streaming for large files
- Better conflict handling
Contributing
Section titled “Contributing”TS-Git is open source and contributions are welcome! Check out the GitHub repository to:
- Report issues
- Suggest features
- Submit pull requests
API Stability
Section titled “API Stability”⚠️ Warning: As this is alpha software, APIs may change. We follow semver and will document breaking changes in release notes.