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 ✓
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user