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 ✓
1.7 KiB
1.7 KiB
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:
- Graph View: Visual commit graph showing branches, merges, and commit relationships
- List View: Linear commit log with details
- Commit Details: Click any commit to see full details and diff
- 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