v0.7.0
To install or update git-branchless
, run the following:
$ cargo install --locked git-branchless
$ git branchless init # in your repository
If you haven't already taken the user survey, please consider doing so!
Release highlights
- New features for
git test
to help working with patch stacks. See the postgit test fix
,git test run --search
for details and demos.git test
now implements afix
subcommand to run formatters/linters/etc. on each commit and apply their changes.git test run
now implements linear, reverse-linear, and binary search.
- There are breaking changes to
git reword
,git switch
, andgit record
; see below.
Changelog
Added
- (#646)
git amend
now supports a--reparent
option to adjust the contents of a commit while keeping the children commits exactly the same. - (#686)
git branchless init
will now populate the internal commit graph structure, rather than waiting for the first invocation of agit branchless
subcommand. - (#725) Added
siblings()
revset function to determine the siblings of a given commit. - (#725) Added an
-I
/--insert
option togit record
to insert the new commit before all of the current commit's children. - (#763) Added a
-d
/--detach
option togit branchless switch
to switch to a commit without checking out any associated branches (as might happen due to thebranchless.navigation.autoSwitchBranches
configuration variable), or to switch to a branch without checking it out. - (#766) Added a
git test fix
subcommand to apply formatters/linters/etc. to a set of commits. - (#777) Added the
--search
option togit test run
to search a set of commits using linear or binary search for the first commit(s) which cause the tests to fail. - (#777)
git test run
now aborts the overall test run when a test returns exit code127
. - (#777)
git test run
now sets theBRANCHLESS_TEST_COMMIT
andBRANCHLESS_TEST_COMMAND
environment variables when running the test command. - (#785) Added
tests.passed()
,tests.failed()
, andtests.fixable()
revset functions, whose results are populated bygit test
. - (#790) Added the
--reverse
option togit smartlog
.
Changed
- (#730) BREAKING: The default revset for
git reword
is nowstack() | @
instead of@
, to simultaneously reword all commits in the current stack. - (#763) BREAKING:
git branchless switch
no longer implicitly opens the interactive commit selector when no target is provided. You must explicitly pass-i
/--interactive
to do so. - (#801) BREAKING: The parameter to
git record
has been renamed from-b
/--branch
to-c
/--create
. - (#685)
git submit
now colorizes the names of the affected branches. - (#763) Running
git branchless switch
with no arguments will switch to the branch associate with the current commit, if there is exactly one such branch and thebranchless.navigation.autoSwitchBranches
configuration variable is set totrue
. - (#791) The name for the temporary file created by
git reword
is now of the formCOMMIT_EDITMSG-*.txt
, which your editor can use to detect it as a Git commit message file. - (#811) The styling for
git test
progress and output has been changed.
Fixed
- (#646) Adjusted messaging during merge conflicts with
git move --in-memory
to be more accurate. - (#647)
git test run
now recovers from previously-failed tests instead of failing indefinitely in future runs. - (#670)
git submit
no longer force-pushes the current branch in the circumstance that all branches are currently up-to-date. - (#688)
git amend
now respects the--merge
option. - (#722)
git reword
now supports invoking editors with spaces in their names. - (#724)
git branchless init
now installs apost-applypatch
hook, for users ofgit am
. - (#742)
git branchless init
now respects a leading~
in thecore.hooksPath
configuration variable. - (#743)
git sync
, etc. now correctly clean up remote branch information for branches which have been merged upstream. Previously, the remote branch information would be left behind, which would cause future branches with the same names to incorrectly become associated with the old remote branch. - (#764)
git sync
will no longer attempt to resolve merge conflicts unless you pass--merge
. Previously, this could happen when attempting to sync merge commits.
New Contributors
Thanks to the following first-time contributors!
- @samueltardieu made their first contribution in #742
- @wabain made their first contribution in #791
If you're interested in contributing, check out the Developer Guide in the Wiki, or post in the Discussions or Discord server to ask any questions.