Skip to content

Commit 6635b47

Browse files
committed
UPDATE feature and changes
1 parent a421040 commit 6635b47

2 files changed

Lines changed: 103 additions & 54 deletions

File tree

CHANGELOG.md

Lines changed: 40 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,43 @@
11
# Changelog
22

3-
## 2026-01-29
4-
5-
### Foundation
6-
- Set up Go project structure with domain types (Commit, Branch, Repository)
7-
- Implemented git layer using go-git for loading commits and branches
8-
- Created TUI shell with bubbletea and Elm architecture
9-
10-
### Commit List
11-
- Added scrollable commit list with virtual viewport
12-
- Implemented graph rendering with branch badges and 6-color palette
13-
- Added Vim-style navigation (j/k, g/G) and mouse support
14-
15-
### Views & Overlays
16-
- Added commit detail overlay showing full hash, author, date, message, parents, refs
17-
- Added branch filter modal with checkbox list and reachability-based filtering
18-
19-
### Live Updates
20-
- Implemented file watcher on `.git/HEAD` and refs directories
21-
- Added 100ms debounce for rapid changes
3+
## [0.3.0] - 2026-01-30
4+
5+
### Added
6+
- **Author filter** - Filter commits by author (`a` key)
7+
- **Author highlight** - Dim non-matching commits to focus on one author (`A` key)
8+
- **Search** - Find commits by message or hash (`/` key, `n`/`N` to navigate)
9+
- **Date histogram** - Timeline showing commit density with time range filtering (`t` to toggle, `Tab` to focus)
10+
- **Inline commit expansion** - View commit details and file list without leaving the graph (`Enter` to expand)
11+
- **Diff view** - View file changes with syntax highlighting (`Enter` on file)
12+
- Two-column layout for expanded view on wide terminals (>= 100 chars)
13+
14+
### Changed
15+
- Commit details now shown inline (expanding between rows) instead of modal overlay
16+
- Graph remains visible when viewing commit details
17+
- Keyboard and mouse scrolling disabled when commit is expanded
18+
19+
## [0.2.0] - 2026-01-29
20+
21+
### Added
22+
- Path argument support (`gitree /path/to/repo`)
23+
- Column headers with proper alignment
24+
- Multi-lane DAG visualization with lane assignment algorithm
25+
- Topological sort for correct commit ordering
26+
27+
### Fixed
28+
- UTF-8 rendering issues
29+
- Lane assignment for rebased/cherry-picked commits
30+
- Merge branch label positioning
31+
32+
## [0.1.0] - 2026-01-29
33+
34+
### Added
35+
- Initial release
36+
- Visual commit graph with branch badges and 6-color palette
37+
- Scrollable commit list with virtual viewport
38+
- Vim-style navigation (j/k, g/G) and mouse support
39+
- Commit detail overlay
40+
- Branch filter modal with reachability-based filtering
41+
- Live repository watching with fsnotify
42+
- 100ms debounce for rapid changes
2243
- Visual indicator in footer (● watching / ○ not watching)
23-
24-
### Path Argument & UI Polish
25-
- Added support for `gitree [path]` to open any repository
26-
- Added column headers with proper alignment
27-
- Fixed UTF-8 rendering issues
28-
29-
### Graph Improvements
30-
- Replaced simple graph with multi-lane DAG visualization
31-
- Added lane assignment algorithm for proper branch layout
32-
- Implemented topological sort for correct commit ordering
33-
- Fixed lane assignment for rebased/cherry-picked commits
34-
- Improved merge branch label positioning
35-
36-
### Documentation
37-
- Added README with installation, usage, and key bindings
38-
- Added this changelog

README.md

Lines changed: 63 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
# gitree
22

3-
A terminal-based git history visualization tool with live updates.
3+
A terminal-based git history visualization tool with live updates and time-based navigation.
44

55
![Go](https://img.shields.io/badge/Go-1.24+-00ADD8?logo=go&logoColor=white)
66

77
## Features
88

9-
- **Visual commit graph** - See branch relationships at a glance with multi-lane DAG visualization
9+
- **Visual commit graph** - Multi-lane DAG visualization showing branch relationships
1010
- **Live updates** - Graph refreshes automatically when repository changes
11-
- **Branch filtering** - Filter commits by branch with reachability-based filtering
12-
- **Commit details** - View full commit info in an overlay panel
11+
- **Inline commit details** - Expand commits to see files and diffs without leaving the graph
12+
- **Filtering** - Filter by branch or author
13+
- **Author highlight** - Dim other commits to focus on one contributor
14+
- **Search** - Find commits by message or hash
15+
- **Date histogram** - Timeline showing commit density, filter by time range
16+
- **Diff view** - View file changes with syntax highlighting
1317
- **Vim-style navigation** - Keyboard-driven with mouse support
14-
- **Clean design** - Minimal chrome, maximum information density
1518

1619
## Installation
1720

@@ -21,7 +24,7 @@ Download the latest release from the [releases page](https://github.com/nogo/git
2124

2225
```bash
2326
# Example for macOS Apple Silicon
24-
tar -xzf gitree_0.2.0_darwin_arm64.tar.gz
27+
tar -xzf gitree_0.3.0_darwin_arm64.tar.gz
2528
sudo mv gitree /usr/local/bin/
2629
```
2730

@@ -58,20 +61,53 @@ gitree ~/projects/myrepo
5861

5962
## Key Bindings
6063

64+
### Navigation
65+
6166
| Key | Action |
6267
|-----|--------|
6368
| `j` / `k`, `` / `` | Navigate up/down |
6469
| `Ctrl+d` / `Ctrl+u` | Page down/up |
65-
| `PgDn` / `PgUp` | Page down/up |
6670
| `g` / `G` | Jump to top/bottom |
67-
| `Home` / `End` | Jump to top/bottom |
68-
| `Enter` | Open commit detail |
69-
| `Esc` | Close overlay |
70-
| `b` | Open branch filter |
71-
| `c` | Clear filter |
72-
| `q`, `Ctrl+c` | Quit |
73-
| Mouse wheel | Scroll |
74-
| Mouse click | Select commit |
71+
| `Enter` | Expand commit (show files) |
72+
| `Esc` | Close/collapse |
73+
| `q` | Quit |
74+
75+
### Filtering & Search
76+
77+
| Key | Action |
78+
|-----|--------|
79+
| `b` | Branch filter |
80+
| `a` | Author filter |
81+
| `A` | Author highlight (dims others) |
82+
| `/` | Search commits |
83+
| `n` / `N` | Next/previous match |
84+
| `c` | Clear all filters |
85+
86+
### Timeline
87+
88+
| Key | Action |
89+
|-----|--------|
90+
| `t` | Toggle histogram |
91+
| `Tab` | Focus histogram |
92+
| `h` / `l` | Move selection |
93+
| `[` / `]` | Set range start/end |
94+
| `Enter` | Apply time filter |
95+
96+
### When Expanded
97+
98+
| Key | Action |
99+
|-----|--------|
100+
| `j` / `k` | Navigate files |
101+
| `Enter` | Open diff view |
102+
| `Esc` | Collapse |
103+
104+
### Diff View
105+
106+
| Key | Action |
107+
|-----|--------|
108+
| `j` / `k` | Scroll diff |
109+
| `h` / `l` | Previous/next file |
110+
| `Esc` / `q` | Close |
75111

76112
## Layout
77113

@@ -80,11 +116,19 @@ gitree repo-name
80116
───────────────────────────────────────────────────────────────────
81117
Message Author Date Hash
82118
───────────────────────────────────────────────────────────────────
83-
│ ○ [main] Add feature... Danilo K 12m ago 6144c
84-
●─┘ Merge branch 'feature' Alice 1h ago a1b2c
85-
│ Fix authentication bug Bob 2h ago b2c3d
119+
│ ○ [main] Add feature... Alice 12m ago 6144c
120+
│ ╔═══════════════════════╤═══════════════════════════════════╗
121+
│ ║ Commit: 6144c3d... │ Files (3) +42 -18 ║
122+
│ ║ Author: Alice <a@...> │ > M src/app.go +30 -10 ║
123+
│ ║ Date: Jan 30, 2026 │ A src/new.go +12 -0 ║
124+
│ ╚═══ [j/k] file [Enter] diff [Esc] close ═════════════════╝
125+
●─┘ Merge branch 'feature' Bob 1h ago a1b2c
126+
│ Fix authentication bug Carol 2h ago b2c3d
127+
───────────────────────────────────────────────────────────────────
128+
⣀⣀⣤⣤⣶⣶⣿⣿⣶⣶⣤⣤⣀⣀
129+
[━━━━━━━━━━]
86130
───────────────────────────────────────────────────────────────────
87-
● watching 47/1284 commits 12 branches [b]ranch [q]uit
131+
● watching 47/1284 commits 12 branches [b]ranch [c]lear
88132
```
89133

90134
## Requirements

0 commit comments

Comments
 (0)