Repository navigation
repot v0.3.0
This release makes repot fast and a little bit smart: status asks GitHub
once instead of fetching everything, the picker knows where you actually work,
and new commands help you find, open, clean up and start repositories.
Highlights
- Status in about two seconds. Before fetching, repot asks GitHub for every
branch tip in a few batched requests (throughgh, when it is installed and
signed in). Checkouts that are already current are not fetched at all; the
footer says how many GitHub confirmed. Everything else opens a single
connection, 24 at a time, andsyncupdates each checkout as soon as its own
inspection finishes. On 45 real checkouts, status went from 17 s in v0.2.0 to
about 2 s. - Recommendations that fit. The report separates checkouts held back by
local changes, work in progress with nothing new upstream, and those that
need review, and suggests the exact next command, such as
git push -u origin featureorrepot publish. - A picker that knows where you work. The shell integration remembers which
repositories you switch to, and the picker lists the ones you use most and most
recently first. On wide terminals it previews the selected repository's branch,
changes and recent commits.repot shell-init <shell> --no-trackturns tracking
off. repot infoshows a repository's branch, changes, remote, visits and
recent commits;repot openopens it in your editor or, with--web, on
GitHub.repot doctorfinds stale copies left behind by renames and transfers on
GitHub, archived and missing repositories, and checkouts in the wrong folder.
Every finding comes with the command that fixes it, and--fixapplies them
after asking. Work that exists only in a stale copy is always shown first.repot stalelists repositories you have not touched in 90 days as
candidates to archive;repot statusreminds you at most once a week.repot new NAME --template SOURCEstarts a project from a template's files,
without its history and without committing.- Faster everywhere. Subprocesses are awaited instead of polled, the check
for ignored files before an update went from 10 s to 5 ms on large build
directories, andrestoreandclone --parallelshare one work queue.
Compatibility
JSON output, exit codes and command names are unchanged. repot's own Git
operations now label their reflog entries "repot", so a repot sync
fast-forward no longer counts as you touching a repository. Visits are kept in
~/.local/state/repot/visits, a small local text file you can delete at any
time.
Install
brew install niklas-heer/tap/repotOr build the pinned release through Nix:
nix profile install github:niklas-heer/repot/v0.3.0Release archives cover macOS and Linux on x86-64 and ARM64; verify them against
SHA256SUMS. After upgrading, restart your shell or re-source the output of
repot shell-init so directory tracking is active.
See the user guide.