Releases: VirtusLab/git-machete
Releases · VirtusLab/git-machete
Release list
v3.44.1
v3.44.0
- added:
machete.github.{baseRemote,baseOrganization,baseRepository}andmachete.gitlab.{baseRemote,baseNamespace,baseProject}git config keys
to locate the base/target repository of a pull/merge request independently of the head/source repository - changed:
git machete {github,gitlab} create-{pr,mr}andrestack-{pr,mr}now push the head/source branch to the remote
determined by the code-hosting logic (themachete.{github,gitlab}.remotegit config key when set, otherwise the remote inferred from the matching remote URL), consistently with how the base/target branch is already handled;
in an ambiguous multi-remote setup with no remote configured, they now abort asking for the relevant git config keys rather than prompting to pick a remote interactively
v3.43.0
- changed:
git machete slide-outno longer requires the given branches to form a chain; literally any set of managed branches can be slid out at once, with each slid-out branch's surviving children reattached to (and, unless--no-rebaseis passed, rebased/merged onto) that branch's nearest surviving ancestor - changed: shell completion for
git machete slide-outnow suggests all managed branches (excluding the ones already given on the command line), rather than only those forming a valid chain - deprecated:
git machete list slidable(now equivalent togit machete list managed) andgit machete list slidable-after, asgit machete slide-out's shell completion no longer relies on either - fixed:
git machete statusnow renders[<worktree>]labels in repos whose linked worktrees are all in detached HEAD state, rather than treating the repo as single-worktree and suppressing every label
v3.42.0
- added:
git machete statusnow annotates each branch checked out in a worktree with a[<worktree>]label (suggested by @mikechristiansenvae) - fixed:
git machete go,slide-outand{github,gitlab} checkout-{pr,mr}snow fail with an actionable error when the target branch is already checked out in another worktree, rather than the crypticfatal: '<branch>' is already used by worktree at <path>fromgit checkout(reported by @lsierant)
v3.41.0
- added: an Agent Skill at
skills/git-machete/SKILL.md - added:
git machete rename <new-name>command to rename a branch both in git and in the branch layout file - added:
git machete fork-point --explainflag explains which branches the fork point was inferred from - changed:
git machete github update-pr-descriptionsandgit machete gitlab update-mr-descriptionsnow default to--relatedwhen no flag (--all/--by/--mine/--related) is provided - changed:
git machete status -lnow lists, for green and yellow edges, all commits between the parent branch and the branch tip (rather than just between the fork point and the branch tip), with the fork point commit annotated-> fork point; red edges still list only the unique commits of the branch (fork-point..branch, exclusive) - fixed: spurious yellow edge no longer appears in
statuswhen the parent branch is merely behind its remote counterpart and the child branch was forked from the remote tip - fixed:
git machete slide-out <branch>no longer prints a confusing "Warning: sliding invalid branch ... out" followed by "Branch ... not found in the tree" when the branch was already deleted from git; the explicit slide-out is now honored cleanly - fixed:
git machete traverseno longer crashes withNotADirectoryError: '.git/machete'when auto-slide-out fires inside a linked worktree (reported by @BertPluymersTR) - fixed: minor glitches in shell completions
- fixed: parsing of
gh --versionoutput for custom/develghbuilds (e.g.gh version 2.92.0-7-ga3efb25a) - improved: CLI error messages now suggest close matches for typo'd subcommands, flags and choices
v3.40.1
- fixed: ASCII-only mode is now applied separately for stdout and stderr so that stderr retains formatting when stdout is redirected (contributed by @tmchow)
- improved: bash, zsh and fish completion scripts now consistently filter out mutually exclusive options (contributed by @CodeLine9)
v3.40.0
- added:
cd-into-temporary-worktreevalue formachete.traverse.whenBranchNotCheckedOutInAnyWorktreegit config key (suggested by @andrii0lomakin) - changed: when a branch is behind remote (needs a pull),
git machete traversenow skips rebase,
just as it did already when branch is diverged from & older than remote (suggested by @lsierant) - fixed: when
git machete traversefailed on a rebase within a worktree,
in certain cases the warning message about changed directory didn't show up (reported by @lsierant)
v3.39.2
- improved: interactive
git machete godisplays a branch layout as instatus - fixed: interactive
git machete gonow fails immediately when stdout is not a TTY (e.g. when piped) instead of behaving chaotically - improved: user-facing messages in
go,show,traversefor the case of single root (contributed by @mvanhorn)
v3.39.1
- changed: whenever git-machete prints a path on Windows, the path is now POSIX-compatible (with
/) - fixed: suggested
updatecommand in deprecation message forfork-point --override-to=...and--override-to-inferred - fixed: subtle bugs related to relative main/git directory paths when switching worktrees in
traverse - improved:
git merge-baseresults are written into.git/machete-merge-base-cachefor faster retrieval in large repositories
v3.39.0
- added:
machete.traverse.whenBranchNotCheckedOutInAnyWorktreegit config key to control the behavior
when checking out a branch that is not checked out in any worktree (suggested by @a-harhar) - changed:
github update-pr-descriptions --related,gitlab update-mr-descriptions --related,
and all subcommands with-U/--update-related-descriptionsflag now always update the entire stack (both upstream and downstream PRs/MRs);
the description style still respects themachete.github.prDescriptionIntroStyleormachete.gitlab.mrDescriptionIntroStyleconfig setting - fixed:
go first,go last,go rootno longer fail when run in detached HEAD state; instead, a sensible default is selected - fixed:
go(interactive mode) no longer fails when run in detached HEAD state; the interface is shown as usual - improved:
advancenow only suggests push when the branch is ahead of remote;
for other sync-to-remote statuses (behind, diverged, in sync, untracked), a warning is displayed instead - improved: every time a branch is checked out, a
Checking out <branch>... OKmessage is printed out for consistency