Skip to content

v0.6.0

Compare
Choose a tag to compare
@arxanas arxanas released this 14 Nov 21:15
· 712 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

If you were using a remote main branch, you will have to switch to a local main branch, as remote main branches are no longer supported; see below.

If you haven't already taken the user survey, please consider doing so!

Release highlights

  • Changes to branching:
    • We now use "switch" instead of "checkout" as the terminology, and the alias git sw is installed by default instead of git co. Thanks to @mlcui-google for fixing a bug in this!
    • Remote main branches are no longer supported.
    • Branches will be automatically checked out when switched to. Thanks to @bcspragu for implementing this!
  • More customizable smartlogs:
    • You can now render different views of the smartlog, possibly omitting commits and branches at your discretion. Thanks to @claytonrcarter for implementing this!
    • Merge commits are also rendered slightly better.
  • git test:
    • Lets you run a given command or check on each commit in your stack.
    • You can leave feedback about the UI or workflow in the discussion board or Discord chat.
    • Documentation at Command: git test.

Changelog

Added

  • (#576) EXPERIMENTAL: Created git test command to run a command on each commit in your stack.
  • (#589, #593) git sync --pull rebases the local main branch on top of the remote main branch.
  • (#619) git smartlog now renders revsets with non-contiguous commits.
  • (#638) git smartlog now deduplicates merge commits which appear in the smartlog.

Changed

  • (#526) BREAKING: When checking out a commit with a single branch attached to it, that branch will also be checked out.
  • (#589) BREAKING: Remote main branches are no longer supported. To upgrade you'll need to create a local main branch which tracks the remote main branch. You can use git sync to keep it up-to-date.
  • (#571) Added current(<revset>) revset function to determine the latest versions of a set of rewritten commits.
  • (#582) Added main(), public() revset functions.
  • (#593, #608) git sync produces more descriptive output.

Fixed

  • (#588) git branchless init now works when invoked in a worktree.
  • (#589) git reword --force-rewrite no longer moves remote-tracking branches.
  • (#589) git smartlog no longer uses 100% CPU in certain cases with remote main branches (because remote main branches are no longer supported).

New Contributors

Thanks to the following first-time contributors!

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.