|
| 1 | +## <a name="v0.18.0">v0.18.0</a> - 2025-09-25 |
| 2 | + |
| 3 | +A couple highlights from this release: |
| 4 | + |
| 5 | +- *News for macOS users*: |
| 6 | + If you installed git-spice from the official Tap |
| 7 | + (`brew install abhinav/tap/git-spice`), |
| 8 | + you'll need to switch to the Cask version of the package |
| 9 | + as the Formula version is being deprecated. |
| 10 | + |
| 11 | + ```bash |
| 12 | + brew uninstall abhinav/tap/git-spice |
| 13 | + brew install --cask abhinav/tap/git-spice |
| 14 | + ``` |
| 15 | + |
| 16 | + If you installed git-spice from homebrew-core (`brew install git-spice`), |
| 17 | + you can ignore this message. |
| 18 | + |
| 19 | + For context: Homebrew supports Formulae and Casks. |
| 20 | + Formulae are typically built from source. |
| 21 | + git-spice's Homebrew Tap previously published git-spice as a Formula, |
| 22 | + but it distributed pre-built binaries instead of source code. |
| 23 | + We're switching to publishing a Cask to more accurately reflect |
| 24 | + what's being distributed. |
| 25 | + |
| 26 | +- git-spice now supports an experimental new command: `gs commit fixup`. |
| 27 | + It is able to amend any commit in the current branch or any downstack branch. |
| 28 | + Think `git commit --amend`, but fully stack-aware. |
| 29 | + |
| 30 | +  |
| 31 | + |
| 32 | + As the feature is experimental, you must opt into it to access it by running: |
| 33 | + |
| 34 | + ```bash |
| 35 | + git config spice.experiment.commitFixup true # enable for this repository |
| 36 | + git config --global spice.experiment.commitFixup true # enable globally |
| 37 | + ``` |
| 38 | + |
| 39 | + If you use it, please feedback and issues about the experimental feature at |
| 40 | + https://github.com/abhinav/git-spice/discussions/867. |
| 41 | + |
| 42 | +- We've addressed a long-standing limitation of `gs branch split`: |
| 43 | + it was previously unable to move the branch being split down to another commit. |
| 44 | + Suppose if the branch being split--say 'penguin'--has two commits: |
| 45 | + (a) Invent penguins, and (b) Refactor pangolin, and the branch head points to commit (b). |
| 46 | + Previously, `gs branch split` would not let you use the name 'penguin' for commit (a), |
| 47 | + as it was already attached to commit (b). |
| 48 | + |
| 49 | + This limitation has now been resolved: you can now move 'penguin' down to commit (a), |
| 50 | + and create a new branch 'pangolin' for commit (b). |
| 51 | + |
| 52 | +  |
| 53 | + |
| 54 | +- `gs log long` (`gs ll`) and `gs log short` (`gs ls`) both now support a `--json` flag. |
| 55 | + When used, they print all available information as JSON to stdout. |
| 56 | + You can consume this output with tools like [jq](https://jqlang.org) to implement custom automations using information from git-spice. |
| 57 | + |
| 58 | +### Added |
| 59 | +- branch checkout/delete/onto: Include CR numbers in prompt visualization, and allow searching and filtering by CR identifiers. |
| 60 | +- Experimental 'gs branch fixup' command that acts like 'git commit --amend' for any downstack commit. It will commit staged changes to a downstack commit, and automatically rebase the rest of the stack on top of it. See <https://abhinav.github.io/git-spice/cli/experiments> for instructions on enabling this experimental feature. |
| 61 | +- log {long, short}: Add --json flag. This prints information about tracked branches to stdout as a stream of JSON objects. |
| 62 | +- log {long, short}: Add -S/--cr-status flag to request the statuses of change requests that have been published. |
| 63 | +### Changed |
| 64 | +- branch split: Allow reusing original branch name for intermediate commits during split. |
| 65 | +- Homebrew Tap now publishes the package as a Cask. If you previously installed with `brew install abhinav/tap/git-spice`, switch to the cask with `brew install --cask abhinav/tap/git-spice`. You can ignore this if you installed from homebrew-core (`brew install git-spice`). |
| 66 | +- gitlab: Submit Merge Requests with `remove_source_branch=true`. This will delete the source branch when the MR is merged. Opt out of this behavior with the `spice.forge.gitlab.removeSourceBranch` option. |
| 67 | +### Removed |
| 68 | +- commit amend: Delete -n flag that was deprecated in favor of --no-edit in v0.10.0 (2025-01-02). If you need a short way to use this flag, try defining a custom shorthand. |
| 69 | +### Fixed |
| 70 | +- repo restack: Autostash dirty changes in the working tree before the operation. Previously, the changes wouldn't be stashed until checking out the first branch, an operation which might fail because of other conflicts. |
0 commit comments