6807f449b7
- 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 ✓
47 lines
1.7 KiB
Markdown
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
|