Skip to content

Releases: abhinav/git-spice

v0.10.0

02 Jan 17:56
3226446
Compare
Choose a tag to compare

This release addresses a long-standing limitation of navigation comments: they were limited only to open CRs.
Thanks to @VenelinMartinov, git-spice will now retain history of merged downstack CRs when posting navigation comments.

Added

  • commit create: Add --fixup flag to create fixup commits. You can use git rebase --interactive or gs branch edit to combine these fixup commits into their targets.
  • rebase continue: Add --[no-]edit flag to specify whether an editor should open to change the commit message. Defaults to the value of the spice.rebaseContinue.edit configuration option if set, or true if not.
  • Add --no-verify flag to bypass pre-commit and commit-msg Git hooks for commands that create new commits. This includes 'commit create', 'commit amend', 'commit split', and 'branch create'.
  • state: Track version of the state store layout in use. This should be a no-op for users, but it protects against future changes to the layout.
  • submit: Add --update-only flag to update open CRs but not create new ones. Branches that would create new CRs are ignored.

Changed

  • submit: Include merged downstack changes in navigation comments when restacking and resubmitting changes based on them.
  • commit amend: Deprecate -n form of --no-edit. This will be deleted in a future version.
  • branch delete: If multiple branches are provided, delete them in a more predictable order.

Fixed

  • Reduce repeated work between git-spice commands that invoke each other.

v0.9.0

26 Nov 13:45
f9d744e
Compare
Choose a tag to compare

This release adds support for using git-spice with GitLab.
This works for both, gitlab.com and Self-Hosted GitLab instances.
Thanks to @gr4cza for implementing GitLab support.

Added

  • Add support for GitLab forge.
  • repo sync: Add a --restack flag to automatically restack the current stack after syncing.

v0.8.1

12 Nov 13:31
a72ce6e
Compare
Choose a tag to compare

Fixed

  • Shell completion: Don't use an incorrect command name if the binary is renamed.

v0.8.0

09 Nov 23:46
76be723
Compare
Choose a tag to compare

Added

  • {trunk, branch checkout}: Add -n/--dry-run flag to print the target branch.
  • {up, down, top, bottom, branch checkout}: Add --detach flag to detach HEAD after checking out the target branch.
  • submit: Add -w/--web flag to open a browser with the submitted CR, and a spice.submit.web configuration option to allow making this the default.
  • submit: Add spice.submit.listTemplatesTimeout configuration option to change the timeout for template lookup operations.

Changed

  • GitHub: API errors will now include error codes to more easily root-cause issues.
  • branch split: If the branch being split has been submitted, prompt to associate the CR with one of the branches.
  • submit: If a branch has already been pushed to the remote repository with git push -u, use that branch name when creating a CR.
  • submit: If a branch name is already taken in the remote, generate a unique name for the remote branch that is used to submit the CR.
  • submit: When matching externally submitted CRs to a branch, reject matches where the names are equal but their HEADs are not.
  • submit: If CR template lookup from the forge times out, present the outdated templates to the user instead of presenting none.

Fixed

  • submit: Fix incorrect branch name used when a base branch of a submitted branch is renamed.

v0.7.1

26 Oct 15:55
a77ab2c
Compare
Choose a tag to compare

Fixed

  • branch submit: Fix bad log statement in --dry-run mode.
  • branch submit: Fix bug when importing externally created PRs, where the first comment in the PR would be hijacked as the navigation comment.

v0.7.0

02 Oct 02:51
94b52d8
Compare
Choose a tag to compare

This release contains significant changes to internal state management to prevent corruption.
If you run into any issues, please report them here.

Changed

  • branch delete: Accept multiple branches for deletion.
  • Branch selection widget is now smarter about prioritizing fuzzy matches.

Fixed

  • branch create: Prevent creation of tracked branches with untracked bases as this leaves the storage in a corrupted state.
  • repo init: Don't leave dangling branch references when trunk is changed.
  • branch create: Don't commit staged changes if git-spice is unable to save the branch to its internal storage.
  • branch onto: Don't rebase the branch if changing its base would corrupt the data store.
  • github: Recognize remote URLs in the form ssh://[email protected]:443/org/repo.
  • repo sync: Fix case when many branches from the same stack are merged, and order of deletion causes a restacking error or conflict.
  • repo sync: Reduce the number of redundant operations performed when processing multiple merged branches.

v0.6.0

17 Sep 14:24
8c7ef2c
Compare
Choose a tag to compare

Added

  • Windows support.

Changed

  • submit: If a CR for a branch is closed or merged, and the branch is submitted again, git-spice will now create a new CR for that branch instead of failing to update the existing CR.
  • repo sync: Reduce the number of network requests made to check status of submitted branches.
  • repo sync: Gracefully degrade for unsupported Git hosting services by looking for merged branches locally instead of attempting to make API requests and failing. This only works for merge commits and fast-forwards, but it makes it easier to use git-spice with non-GitHub remotes.

Fixed

  • branch submit: Present template list in consistent order.
  • branch create: Fix bug where aborting a commit would leave the repository in a detached HEAD state.
  • repo sync: Don't warn about missing remote tracking branch if it was already deleted by a 'git fetch --prune' or similar operation.
  • repo sync: Delete the correct tracking branch for renamed branches.

v0.5.2

30 Aug 04:11
e5c9f88
Compare
Choose a tag to compare

Fixed

  • submit: Fix outdated PR template being used when trunk is behind its remote ref.
  • github: Fix outdated PR templates being used when templates used lower-cased file names.

v0.5.1

28 Aug 05:21
559a706
Compare
Choose a tag to compare

Fixed

  • Support use with older Git versions by dropping use of a v2.33-only flag.

v0.5.0

25 Aug 22:25
1263513
Compare
Choose a tag to compare

Added

  • submit: Add spice.submit.publish configuration to allow making --no-publish the default. Use this to work with unsupported Git hosting services.
  • branch checkout: Add spice.branchCheckout.showUntracked configuration to always show untracked branches in checkout prompt.
  • branch create: Add --[no-]commit flag and accompanying spice.branchCreate.commit configuration to create stacked branches without committing changes.
  • submit: When importing existing CRs, also detect existing stack navigation comments and update them instead of posting duplicates. This will only work for comments posted git-spice v0.5 or newer.

Fixed

  • submit: When submitting with --no-publish, don't fail if the repository is hosted in an unsupported Git hosting services.
  • {branch, upstack} onto: Always rebase commits after the operation--even if the branch's base already matches the target. This better matches user expectations when the branch and base diverge.