@@ -9,12 +9,35 @@ An interactive tree utility for complete git workflows, written in modern Fortra |
| 9 | - Proper UTF-8 tree rendering with box-drawing characters (`├──`, `└──`, `│`) | 9 | - Proper UTF-8 tree rendering with box-drawing characters (`├──`, `└──`, `│`) |
| 10 | - **Color-coded status indicators:** | 10 | - **Color-coded status indicators:** |
| 11 | - Green `↑` - Staged changes (ready to commit) | 11 | - Green `↑` - Staged changes (ready to commit) |
| | 12 | + - Yellow `↓` - pending changes from remote |
| 12 | - Red `✗` - Modified tracked files | 13 | - Red `✗` - Modified tracked files |
| 13 | - Dim grey `✗` - Untracked files | 14 | - Dim grey `✗` - Untracked files |
| 14 | - Supports `--all`/`-a` flag to show all files (with status marked) | 15 | - Supports `--all`/`-a` flag to show all files (with status marked) |
| 15 | - Alphabetically sorted output matching the `tree` command format | 16 | - Alphabetically sorted output matching the `tree` command format |
| 16 | -- **Interactive mode** with full git workflow: stage, unstage, commit, push, and status view | 17 | +- **Interactive mode** with full git workflow: stage, unstage, commit, push, diff (with pager), status (with pager), fetch, and pull |
| 17 | -- **Modular Fortran architecture** for maintainability and extensibility | 18 | + |
| | 19 | +## Installing |
| | 20 | + |
| | 21 | +### AUR |
| | 22 | + |
| | 23 | +```bash |
| | 24 | +paru -S fuss |
| | 25 | +or |
| | 26 | +yay -s fuss |
| | 27 | +``` |
| | 28 | + |
| | 29 | +### Homebrew |
| | 30 | + |
| | 31 | +```bash |
| | 32 | +brew tap FortranGoingOnForty/fuss |
| | 33 | +brew install fuss |
| | 34 | +``` |
| | 35 | + |
| | 36 | +### RPM |
| | 37 | +```bash |
| | 38 | +sudo dnf config-manager --add-repo https://repos.musicsian.com/musicsian.repo |
| | 39 | +sudo dnf install fuss |
| | 40 | +``` |
| 18 | | 41 | |
| 19 | ## Building | 42 | ## Building |
| 20 | | 43 | |
@@ -52,6 +75,9 @@ Interactive mode (full git workflow): |
| 52 | - `a`: Stage file (git add) | 75 | - `a`: Stage file (git add) |
| 53 | - `u`: Unstage file (git restore --staged) | 76 | - `u`: Unstage file (git restore --staged) |
| 54 | - `m`: Commit with message prompt | 77 | - `m`: Commit with message prompt |
| | 78 | +- `f`: fetch from remote |
| | 79 | +- `l`: pull from remote |
| | 80 | +- `d`: diff selected file in pager |
| 55 | - `p`: Push to remote | 81 | - `p`: Push to remote |
| 56 | - `s`: View full git status (scrollable with `less`) | 82 | - `s`: View full git status (scrollable with `less`) |
| 57 | | 83 | |