All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased - ReleaseDate
0.10.18 - 2025-01-22
- Removed inefficient tree walking
- Improved likelihood that an operation will leave you at the correct commit / branch
0.10.17 - 2023-08-09
- Show the status for the correct branch when multiple point to the same commit
0.10.16 - 2023-05-02
- Don't panic on
git stack --onto <sha>
0.10.15 - 2023-04-13
- Update dependency
0.10.14 - 2023-03-16
- Update dependency
0.10.13 - 2023-03-14
- Correctly handle
CLICOLOR=1
- Correctly handle
NO_COLOR=
- Do not checkout files if the tree is unchanged
0.10.12 - 2023-02-02
- Imitate git in editing commit messages, allowing at least
vim
to recognize the filetype
0.10.11 - 2023-01-25
- Commit and sign with committer signature
0.10.10 - 2023-01-18
- Write to the users config, whichever location it is in
0.10.9 - 2023-01-12
- Improve error reporting when operations like rebase are in progress
0.10.8 - 2023-01-12
git amend <rev>
no longer drops commits after<rev>
0.10.7 - 2023-01-12
- Sign rebased commits
0.10.6 - 2023-01-11
git amend
no-ops now fail
git amend <rev>
is now supported
git amend
only reports an amend happening on successgit amend
no-ops are now quietergit amend
no-ops now failgit amend
can now amend fixupsgit amend
won't lose unstaged changes anymoregit amend
moves to fixup commit on failuregit run
is more explicit about what it is testing and what the status was for
0.10.5 - 2023-01-10
git amend
correctly checks out new HEAD when amending a detached HEAD
0.10.4 - 2023-01-10
git sync
rebases to the fetched remote, not the remote at process start
0.10.3 - 2023-01-10
git amend
can commit staged changes
0.10.2 - 2023-01-09
git reword
now takes an optional rev for rewording commits other than HEAD
git amend -m
didn't work, now it doesgit amend
can now work on detached HEADS
0.10.1 - 2023-01-06
git run --switch
to checkout the commit that failedgit run --fail-fast
now exists and is the default, disable with--no-fail-fast
/--no-ff
git sync
now rebases onto the fetched branch
0.10.0 - 2023-01-05
- Initial
gpgSign
support. This is untested so ifcommit.gpgSign
is causinggit-stack
to fail, you can usestack.gpgSign
to disable it.
0.9.0 - 2023-01-04
New git stack
subcommands, including
next
andprev
sync
(with the aim of replacinggit stack --pull
)amend
reword
run
With git stack alias
for creating alias for these
0.8.5 - 2022-09-06
- Provide more information on crash/panic
0.8.4 - 2022-08-10
- Correctly identify parent branch when a protected branch points to a commit that is a direct ancestor of another protected branch
0.8.3 - 2022-07-02
- Foreign branches are always protected
0.8.2 - 2022-03-23
- Find a better base for commits without a protected branch
- Split off old branches into dedicated stacks before building the commit graph, controlled by
stack.auto-base-commit-count
. - Cache some git operations in-memory
0.8.1 - 2022-03-21
- Don't fail on undetected base
- Speed up view rendering with branches on very old commits by caching git operations in-memory
0.8.0 - 2022-03-18
- Pull remote handling changed enough that regressions could have been introduced.
- Slight changes to how
--base
and--onto
are defaulted --pull --onto <remote>/<branch>
behavior changed
- Show remote branches when they diverge from base branch
--base
defaults to the local branch of--onto
--onto
defaults to the remote branch of--base
- Pull using the remote specified in
--onto
rather than just the upstream
0.7.4 - 2022-03-17
- Support commits and tags for
--onto
and--base
arguments
0.7.3 - 2022-03-17
- Support remote tracking branches for
--onto
and--base
arguments
0.7.2 - 2022-03-17
- Call
post-rewrite
andreference-transaction
git hooks
0.7.1 - 2022-03-17
- Consistent spacing between stacks
0.7.0 - 2022-03-16
- Commit graph implementation changed enough that regressions could have been introduced
-C <path>
support for changing the current directory
- Be smarter about picking the protected branch for a given feature branch
- Speed up operations on large, complex commit histories like
gecko-dev
0.6.0 - 2022-03-01
--stack
,--format
,--fixup
are now case sensitive- Most
--format
options are replaced with--format graph --show-commits ...
--format list
to list branches that are part of the selected stacks (--stack
).
- Be more explicit in why a push didn't happen
- Decouple showing of commits from
--format
0.5.6 - 2022-02-28
- Respect existing upstream configured for current branch
- Respect
remote.pushDefault
0.5.5 - 2022-01-26
- Don't panic on
--base --onto --stack all
0.5.4 - 2022-01-11
0.5.3 - 2021-11-13
- Only prune branches when they don't exist on the server, rather than also if they have a
/
0.5.2 - 2021-11-11
- Do not auto-protect (by age or user) HEAD
0.5.1 - 2021-11-11
- Read
protect-commit-age
from gitconfig
0.5.0 - 2021-11-09
- New
--repair
flag- Re-stacks branches on top of each other
- Tries to merge branches that have diverged
- Stack visualization
- Made it more compact
- Change the commit glyph
- Made it more consistently linear
- Fix sorting so the longest branches are last
- Always show leaf commits
- Refined stack visualization
- Don't lose tranbhes with
--onto
- Don't treat base/onto as protected branches
- Don't pull all when there is nothing to pull
- Respect
--format=commits
- Preserve old commit time on
--rebase
- Branch backup now includes the rebase during
--pull
- Show
--pull
s behavior on dry-run - Allow dirty tree on dry-run
- Reduce the amount of data we process
- Reduce stack usage when rendering
0.4.8 - 2021-10-25
- We should only squash the fixup and not the ones before it
0.4.7 - 2021-10-23
- Detect multi-commit branches are pushable
0.4.6 - 2021-10-22
- Further reduce the chance for stackoverflows
0.4.5 - 2021-10-22
- Summarize other people's branches to unclutter visualization
- Avoid summarizing a branch with HEAD
0.4.4 - 2021-10-22
- Always prune from the push-remote, not just when configured
- Speed up fetching large push-remotes by only fetching what is needed
- Don't fetch the push-remote on dry-run
- Don't mark local edits as protected
0.4.3 - 2021-10-22
- Color log level, regardless of min log level
0.4.2 - 2021-10-22
- Clean up stack visualization
- Remove nesting by not showing merge-bases of protected branches
- Treat large branches as protected, abbreviating them
- Summarize empty stacks
- Summarize old branches
- Reduced or eliminated stackoverflows
0.4.1 - 2021-10-21
- Read all values from
.gitconfig
, rather than just some
0.4.0 - 2021-10-21
- Renamed config
stack.fixp
tostack.auto-fixup
to clarify role
- Changed
--pull
to not performstack.auto-fixup
- Allow
--fixup
to run without--rebase
0.3.0 - 2021-10-20
- Command line argument values have changed
- Renamed
git-branch-backup
togit-branch-stash
- Auto-stash support
- Switched command line arguments to match config file
- Vendor libgit2
- Don't panic on some merge conflicts
- Correctly detect
init.defaultBranch
as a protected branch - Correctly detect some more protected commit cases
- Reduce scope of dirty checks
- Some visualization improvements
- Fix some branch deletion corner cases
- Auto-delete branches from squash-merges
0.2.9 - 2021-10-07
git stack --pull
will also fetch the push-remote, ensuring we show the latest status relative to it.
- Highlight detached HEAD
- Changed branch status precedence
- Tweaked colors
- Smarter color control
0.2.8 - 2021-09-10
- Stack View:
- Make highlights stand out more by using less color
- Highlight dev branches pointing to protected commits
- Make HEAD more obvious by listing it first
- Removed a superfluous remote status
0.2.7 - 2021-09-01
- Stack View:
- Ensure protected commits are hidden when showing multiple protected branches
0.2.6 - 2021-09-01
- Crash on merge of parent branch into child branch
0.2.5 - 2021-08-31
- Don't stack unrelated branches (broken in 0.2.3)
- Stack View
- List HEAD branch after all dev branches to make it easier to spot
- Highlight HEAD branch
0.2.4 - 2021-08-31
- Resolved some more stack construction corner cases
- Stack View
- Removed some degenerate cases by prioritizing protected branches over development branches
- We elide "o" joints, where possible
- Improved legibility of debug view by grouping non-nesting fields
0.2.3 - 2021-08-30
- Don't crash with multiple protected branches
--dump-config
now dumps ingitconfig
format- Stack View: don't duplicate commits
0.2.2 - 2021-08-27
- Rebase
- Don't backup during dry-run
- Stack View:
- Ensure default format shows all branches
- Don't use warning-color on protected commits
- Use distinct color for commits and protected branches
- Reduce nesting in stack view in some degenerate cases
- Show on rebase+dry-run, show tree as-if rebase succeeded
0.2.1 - 2021-08-25
- Close a quote in the undo message
0.2.0 - 2021-08-25
- Undo option
- Built on new
git branch-backup
command which is likegit stash
for branch state - atm only backs up the result of a rebase and not
--pull
- Built on new
- Stack View
- Added new
--format branch-commits
option, now the default - Added new
--format debug
option to help with reporting issues - Abbreviate commit IDs
- Show per-branch status, separating from commit status
- Added new
- Auto-delete branches on
--pull
that were merged into a protected branch
- Reduced conflicts during
--rebase
- Load config when in a worktree
- Restore correct HEAD when multiple branches on the same commit
- Renamed
--format
options:brief
->branches
full
->commits