Skip to content

v0.9.0

Compare
Choose a tag to compare
@arxanas arxanas released this 27 May 00:19
· 87 commits to master since this release

To install or update git-branchless, run the following:

$ cargo install --locked git-branchless
$ git branchless init  # in your repository

Release highlights

  • The Apache and MIT license files are now distributed with all git-branchless sub-crates as required.
  • Rust v1.74 or later is required to build.
  • There are breaking changes to git hide and git sync; see below.
  • Broken support for native Windows/Powershell due to bad hook invocations was probably fixed.
    • If this was affecting you, please comment on #370 to confirm or refute.
  • New merges() and branches() revset functions were introduced.

Changelog

See also the release notes for scm-record v0.3.0.

Added

  • (#1129) Added a --dry-run option to git submit to report what would be submitted without actually doing so.
  • (#1130) Added merges() revset function.
  • (#1130) The branches() revset function now accepts an optional text pattern argument to limit which branches are matched.
  • (#1150) The git record command now accepts -s/--stash to return to the previous commit immediately after committing.
  • (#1167) The commit message for a new commit can now be written/edited during git record --interactive.
  • (#1169) git record now accepts multiple --message arguments.
  • (#1184) An initial Github forge was implemented as git submit --forge github, but it's too buggy for general use.
  • (#1241) git smartlog now accepts --exact to skip rendering HEAD and the main branch.
  • (#1244) git submit now accepts multiple arguments/revsets.

Changed

  • BREAKING (#1128) Arguments/revsets passed to git sync are now resolved to their respective stacks.
    • This allows git sync my-branch to work as expected, instead of needing to use git sync 'stack(my-branch)'. The behavior of git sync when called without arguments is not affected by this change. If you rely on the previous behavior, please use git move -x <commit(s)/revset> -d 'main()' instead.
  • BREAKING (#1152) Previously, git hide would not delete branches pointing to the hidden commits unless -D/--delete-branches was passed. Now, deleting branches is the default behavior. Pass --no-delete-branches to restore the old behavior.
  • BREAKING (#1292): The minimum supported Rust version (MSRV) is now 1.74.
  • (#1204) The default instructions for git reword are now wrapped to 72 characters.
  • (#1230) The icon for omitted commits in the smartlog was changed from to .

Fixed

  • (#1071) The Apache and MIT licenses are now distributed with each constituent crate, not just the top-level git-branchless crate.
  • (#1072) The current branch is no longer detached during git amend when the current commit has descendants.
  • (#1073) Merge commits can now be amended with git amend.
  • (#1095) The event log is now shared between all worktrees. Before, commits that were made in one worktree wouldn't be visible in other worktrees, etc.
  • (#1095) git submit now runs in worktree that you invoked it in.
  • (#1095) git submit --forge phabricator no longer records spurious commits when arc diffing.
  • (#1127) Improved support for files with spaces in their name.
  • (#1267) The correct "path" variable is now used on Windows, which fixes some cases of git-branchless failing on native Windows.

Contributors

Thanks to everyone who made this release happen!

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.