git_chain 0.5.6
git_chain: ^0.5.6 copied to clipboard
CLI tool to visualize, synchronize, and track stacked git branch chains and their GitHub PRs.
0.5.6 #
Bug Fixes
- restore the terminal to its exact pre-launch state on exit by snapshotting
stty -gbefore the TUI and replaying it afterwards. Fixes Ctrl+C not working, no echo, and "stairstepped" output (ONLCRoff) left behind by nocterm /git mergetool— none of which Dart's stdin API can restore on its own.
0.5.5 #
Features
git_chain demo --conflictseeds a real merge conflict onlib/app.dart, so syncing the demo'sfeat/polishchain exercises the conflict → merge-tool handoff.
0.5.4 #
Bug Fixes
- stop stray characters (e.g.
62;22c) leaking into the shell after the TUI exits. nocterm sends a Device Attributes query (ESC[c) on shutdown and closes stdin; we now flush the controlling terminal's input via a fresh/dev/ttyhandle (fd 0 is gone by then) so the query's reply is discarded instead of landing at your shell prompt.
0.5.3 #
Bug Fixes
- fix a
StdinException: Bad file descriptorcrash when a TUI sync hit a conflict and handed off to the shell. stdin can't be read synchronously after a nocterm session, so the shell run no longer prompts: the stash/keep-changes decision made in the TUI is passed through, and conflict continuation is detected automatically aftergit mergetool. The CLIsynccommand still prompts as before.
0.5.2 #
Features
- chain detail marks the currently checked-out branch with a
*, and the marker updates immediately after a checkout (the view refreshes). - checking out a branch with a dirty tree now offers a choice: stash & restore, check out keeping the changes (no stash), or cancel.
- syncing with a dirty tree offers the same choice: stash & restore, sync without stashing (keep changes), or cancel. Merges with unrelated uncommitted files proceed; rebase still reports git's clean-tree requirement.
0.5.1 #
Bug Fixes
- syncing from the TUI no longer fails outright when the working tree is dirty (e.g. uncommitted editor/config changes): it now detects this upfront and offers to stash and restore around the sync, matching the shell path.
- clarified that branches containing merge commits rebase correctly — git drops the merges and replays only the real commits onto the parent (verified by tests).
0.5.0 #
Features
- syncing from the TUI now runs in place with a live progress overlay; the app stays open for conflict-free rebases/merges instead of dropping to the shell.
- a sync only hands off to the shell when a branch actually conflicts (so
git mergetoolcan run); already-synced branches are skipped on the shell re-run.
0.4.1 #
Bug Fixes
- fix syncing from the TUI doing nothing / appearing to freeze: triggering a sync stopped the UI through a path that called
exit(), so the handoff that runs the sync never executed. The UI now releases the terminal cleanly, runs the sync (with output andgit mergetool), and exits. - run git with
GIT_TERMINAL_PROMPT=0so a missing/unauthenticated remote makesfetchfail fast instead of hanging on a credential prompt. git_chain demonow keeps its PR fixture out of git (via.gitignore) so the working tree is clean and sync doesn't prompt to stash.
0.4.0 #
Features
- add
git_chain demoto build a self-contained repo with dummy stacked branches and a local PR fixture for screenshots/exploration — no GitHub calls. - read PRs from a
.git_chain_prs.jsonfixture in the repo root when present (used bydemo, offline-friendly).
0.3.0 #
Features
- when the working tree is dirty, checkout and sync offer to stash changes and automatically restore them afterwards.
- stashes are created with an explicit
git_chain: <reason> @ <timestamp>label so they're easy to find and recover; a conflicting auto-restore keeps the named stash.
0.2.0 #
Features
- cache branch status and PRs per session so revisiting a chain is instant and refreshes in the background.
- skip single-branch chains during detection by default (
minStackSize). - expand a branch (
e) to list its commits vs. its parent, excluding merges. - checkout the selected branch (
c) directly from the chain detail view. - show PR assignees next to each branch.
- left-align and trim chain/branch names to fixed-width columns.
- show "Loading…" instead of "(no PR)" until status/PRs have loaded.
Bug Fixes
- transient status messages (e.g. "Opening PR…") now clear themselves.
- keep chain ordering stable between visits (order by creation, not last update).
0.1.0 #
- Initial version of the project.
Features
- visualize stacked branch chains and their GitHub PRs in an interactive nocterm TUI.
- hybrid chain detection: reconstruct chains from open PR base/head graphs, with manual persistence and PR re-annotation.
- synchronize a chain to its latest target branch via cascading rebase or merge (chosen per run).
- open conflicts in the configured
git mergetool, then continue or abort the chain. - track repositories, chains, and full sync history across machines in
~/.git_chain/git_chain.db. scan,list,sync, andtuiCLI commands (tuiis the default).
