Files
Fusion 6807f449b7 feat: add repository workspace as default project view
- Create git file utilities (list_tree, get_file_content, list_branches, commit_file)
- Add file browsing API endpoints (list, content, branches, update)
- Create RepoWorkspace page with sidebar + main content layout
- Add FileTree component with directory navigation
- Add FileViewer component for viewing file contents
- Update project list to link to workspace
- Add workspace CSS styles
- Update router with workspace route

Quality gates: ruff ✓, mypy ✓, typecheck ✓, build ✓
2026-05-19 13:43:49 +02:00

47 lines
1.7 KiB
Markdown

# Git History Visualization
## Problem
Currently, users can create and manage git repositories, but they have no way to view the commit history, branches, or understand the repository structure. This makes it impossible to:
- See what commits exist in a repository
- Understand branch relationships and merges
- View commit details (message, author, date, changes)
- Explore the repository's evolution over time
## Solution
Build an interactive git history visualization similar to GitKraken that provides:
1. **Graph View**: Visual commit graph showing branches, merges, and commit relationships
2. **List View**: Linear commit log with details
3. **Commit Details**: Click any commit to see full details and diff
4. **Branch Visualization**: See all branches and their relationships
## Benefits
- **Understand repository structure** at a glance
- **Track changes** and see who made what changes when
- **Navigate history** easily without using command line
- **Review code** by examining commit diffs
## Scope
### What we're building:
- Backend API to extract git history from bare/mirror repos using git CLI
- Graph visualization component (SVG-based commit graph)
- List view component (linear commit log)
- Commit detail panel (message, author, date, diff)
- View toggle (graph vs list)
- Branch label display
### Out of scope (future enhancements):
- Interactive branch operations (checkout, merge, rebase)
- Tag management
- File browser at specific commits
- Blame/annotation view
- Advanced filtering/search
## Technical Approach
**Backend**: Execute `git log --graph --format=...` commands to get structured commit data
**Frontend**: Custom SVG rendering for graph, React components for list view and details panel