Skip to content

Releases: abhinav/git-spice

v0.1.0

22 Jul 02:30
Compare
Choose a tag to compare

Announcing git-spice, a tool to stack Git branches with ease.
This is the first public release of the tool after being in a private beta for several months.

Added

  • commit amend: Add -a/--all flag to stage changes to tracked files before committing.
  • {branch, downstack, upstack, stack} submit: Post a comment to PRs visualizing the stack and the PR's position in it.

Changed

  • all: Adjust terminology in messaging to refer to Change Requests consistently.

Removed

  • As promised in release notes for v0.1.0-beta5, drop support for old storage format for branch metadata.

Fixed

  • branch split: Fix panicking prompt when there are only two commits in the branch.
  • branch submit: Fix --draft/--no-draft API failures for existing PRs.
  • branch submit: Fix inability to submit if a directory name in root matches the branch name.
  • branch delete: Focus on current branch by default even if it's not tracked.
  • {upstack, downstack, stack} submit: Drop a few redundant calls to GitHub API.

v0.1.0-rc2

08 Jul 12:46
3e26bd8
Compare
Choose a tag to compare
v0.1.0-rc2 Pre-release
Pre-release

Added

  • Add 'upstack submit' to submit a branch and those above it. Best used after restacking the middle of an already-submitted stack.
  • Add 'commit split' command to split the topmost commit into two commits.
  • {stack, upstack, downstack} submit: Add --draft/--no-draft flags for changing the reviewability status of a PR.
  • {stack, upstack, downstack} submit: Add --no-publish to push stack branches without posting PRs for them.
  • branch create: Add -a/--all flag that behaves like 'git add -a'
  • auth login: Add support back for logging in with GitHub CLI.

Changed

  • branch submit: If a submission fails, recover previously-filled metadata automatically in subsequent submit attempts.
  • Branch prompt now presents a tree-style view where possible. This includes 'branch checkout', 'branch onto', 'up', and more.

Fixed

  • branch submit: Improve error message when trying to submit trunk.

v0.1.0-rc1

02 Jul 03:02
ffcc6cb
Compare
Choose a tag to compare
v0.1.0-rc1 Pre-release
Pre-release

Added

  • Add 'gs auth login', 'gs auth logout', and 'gs auth status' commands to log in, log out, and check the authentication status. Supports OAuth, GitHub App, and Personal Access Token. Authentication tokens are stored in the system keychain.

Removed

  • (Breaking) git-spice no longer shells out to the GitHub CLI for authentication. Use the new 'gs auth' command to log in.

v0.1.0-beta6

28 Jun 00:23
15a38d7
Compare
Choose a tag to compare
v0.1.0-beta6 Pre-release
Pre-release

Added

  • Add 'stack edit' command to edit an entire stack, similarly to 'downstack edit'.
  • Add 'branch split' command to split an existing branch with multiple commits into one or more new branches.

Changed

  • upstack restack: Rename --no-base to --skip-start.
  • upstack restack: Target branch name is now a --branch flag.
  • downstack submit: Optional positional branch argument is now --branch flag.
  • downstack edit: Optional positional branch argument is now a --branch flag.
  • branch fold: The optional branch name argument is now a flag.
  • branch restack: The optional positional argument is now a --branch flag.
  • branch submit: Optional branch positional argument is now the --branch flag.

Fixed

  • branch submit: If there's a PR template but no commit body, don't add extraneous newlines at the start of the default PR description.
  • upstack restack: Fix --no-base ignored when there's only one branch.
  • commit {create, amend}: Fix unintended restacking of current branch when there's only one branch in the stack.
  • branch onto: Move the upstack of the target branch before the brach itself. This makes the operation better able to recover from conflicts.

v0.1.0-beta5

17 Jun 02:12
cdac5d5
Compare
Choose a tag to compare
v0.1.0-beta5 Pre-release
Pre-release

Added

  • branch create: Add -b/--base flag to specify a different base branch for the new branch.
  • branch submit: Add --no-publish to push or update a branch without publishing a pull request.
  • upstack restack: Accept name of base branch as an argument. Defaults to current branch.
  • upstack restack: Add --no-base flag to skip restacking the starting base branch.
  • {up, down, top, bottom}: Add -n/--dry-run flag. This will print the target branch name without checking it out. Output may be piped to other commands.
  • branch submit: If a repository has multiple templates, allow picking between them in the submission prompt.
  • Add 'gs log long' (alias 'gs ll') to list branches and their commits.

Changed

  • shell completion: Make shell argument optional and guess shell based on environment.
  • Prompts are now posted to stderr instead of stdout.
  • branch delete: Prompt to force delete unmerged branches instead of just letting Git fail.
  • Format for how PR information is stored was changed. The format will be upgraded automatically when you run gs branch submit with this release. Support for the old format will be dropped in the release after this one.
  • log short: Make branch labels more visually distinct with an icon next to them.

Fixed

  • Fix name for Linux AMD64 release tarball to match uname -m for easier fetching from scripts.
  • commit {create, amend}: Don't restack the current branch on commit. Only the upstacks will be restacked.
  • shell completion: Better handling of quoted strings while predicting.

v0.1.0-beta4

10 Jun 15:04
80c5ede
Compare
Choose a tag to compare
v0.1.0-beta4 Pre-release
Pre-release

Added

  • repo sync: Detect PRs for local branches created and merged externally.
  • Add 'log short' command (alias 'ls') to print the current stack. Use with --all to print all tracked branches.

Changed

  • (Breaking) Rename completion to shell completion. Other shell helpers are expected in the future.
  • branch submit: Delay fetching PR templates until necessary. This should result in an apparent speed-up in the submission prompt.
  • branch submit: Make fewer requests to GitHub for PR templates by caching them locally.

Fixed

  • branch delete: When prompting for branch selection, select current branch by default.
  • {branch, upstack} onto: When prompting for a new base, default to current base.
  • Fix bug in state management attempting to write files with empty names to state.
  • shell completion: Command aliases can now be completed.

v0.1.0-beta3

05 Jun 03:38
e895bac
Compare
Choose a tag to compare
v0.1.0-beta3 Pre-release
Pre-release

Added

  • branch submit: Populate default PR message with PR template, if found.

Changed

  • branch submit: Update an existing PR's draft status only if --draft or --no-draft flags are provided.

Fixed

  • branch submit: The --draft flag is no longer ignored. Whether a PR is draft or not will be changed on each submit.
  • {downstack, stack} submit: Don't change draft status of existing PRs. Use branch submit --[no-]draft to do that.
  • Fix issue where some operations printed rebase conflict message two or more times.
  • rebase {continue, abort}: Heal from external git rebase --continue or git rebase --abort and avoid running old rebase continuation commands.
  • branch checkout: Fix trunk branch not showing in branch selection prompt.

v0.1.0-beta2

01 Jun 23:30
2b81ce6
Compare
Choose a tag to compare
v0.1.0-beta2 Pre-release
Pre-release

Added

  • branch rename: Support renaming another branch by name with the branch rename <old> <new> form of the command.

Changed

  • (Breaking) Change shorthand for 'branch delete' to 'bd'.
  • (Breaking) Change shorthand for 'branch rename' to 'brn'.
  • rebase continue: Don't run continuations if a rebase wasn't in progress. This avoids unexpected behavior from lefotver state.
  • branch checkout: Prompt for picking a branch only shows tracked branches by default. Use -u/--untracked to also see untracked branches.
  • branch submit: Auto-detect PRs created outside git-spice, e.g. using the GitHub UI.

Fixed

  • repo sync: Fix failure if the worktree has uncommitted changes.
  • branch delete: Don't fail if the repository is in detached HEAD state.
  • branch delete: Fix repository left on the wrong branch if upstacks were restacked.
  • GitHub URL detection now respects non-standard URLs like GHES set via $GITHUB_URL.

v0.1.0-beta1

28 May 13:05
f2ac82c
Compare
Choose a tag to compare
v0.1.0-beta1 Pre-release
Pre-release

Added

  • Add gs rebase continue (alias gs rbc) and gs rebase abort (alias gs rba) to continue git-spice operations interrupted by rebase conflicts.
  • Add 'upstack onto' command to move a branch and its upstack onto a new base. This was previously the behavior of 'branch onto'.

Changed

  • branch {edit, onto}: Support continuing the operation after resolving conflicts with gs rebase continue.
  • {branch, upstack, stack} restack: Support continuing the operation after resolving conflicts with gs rebase continue.
  • (Breaking) branch onto: Extract only the commits of the target branch onto the new base. The upstack will be rebased to point to its base. Use 'upstack onto' to graft the entire upstack onto the new base.
  • (Breaking) branch delete: Remove commits of the deleted branch from the stack. If you want to keep them around, untrack the branch instead.
  • branch delete: In the selection prompt for deleting a branch, default to the current branch.

Fixed

  • Reduce boilerplate in rebase error messages.
  • branch delete: Don't report an empty hash for untracked branches.

v0.1.0-alpha5

27 May 14:32
0e65ffc
Compare
Choose a tag to compare
v0.1.0-alpha5 Pre-release
Pre-release

Added

  • branch {checkout, delete, onto, rename}: Prompt for branch if not provided.
  • branch checkout: Allow opting into tracking after checking out a branch.

Changed

  • Use more compact UI for terminal widgets.
  • branch submit: Replace inline text editor with option to open $EDITOR or accept the default.
  • Selection widgets now support fuzzy filtering. Start typing to filter options.