Skip to content

Releases: VirtusLab/git-machete

v3.44.1

Choose a tag to compare

@git-machete-bot git-machete-bot released this 07 Jul 11:50
  • fixed: git machete help config (and help status) no longer renders stray underlines past the machete.status.extraSpaceBeforeBranchName section

v3.44.0

Choose a tag to compare

@git-machete-bot git-machete-bot released this 30 Jun 14:52
040e9d8
  • added: machete.github.{baseRemote,baseOrganization,baseRepository} and machete.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} and restack-{pr,mr} now push the head/source branch to the remote
    determined by the code-hosting logic (the machete.{github,gitlab}.remote git 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

Choose a tag to compare

@git-machete-bot git-machete-bot released this 15 Jun 19:04
  • changed: git machete slide-out no 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-rebase is passed, rebased/merged onto) that branch's nearest surviving ancestor
  • changed: shell completion for git machete slide-out now 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 to git machete list managed) and git machete list slidable-after, as git machete slide-out's shell completion no longer relies on either
  • fixed: git machete status now 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

Choose a tag to compare

@git-machete-bot git-machete-bot released this 03 Jun 14:06
  • added: git machete status now annotates each branch checked out in a worktree with a [<worktree>] label (suggested by @mikechristiansenvae)
  • fixed: git machete go, slide-out and {github,gitlab} checkout-{pr,mr}s now fail with an actionable error when the target branch is already checked out in another worktree, rather than the cryptic fatal: '<branch>' is already used by worktree at <path> from git checkout (reported by @lsierant)

v3.41.0

Choose a tag to compare

@git-machete-bot git-machete-bot released this 18 May 15:30
  • 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 --explain flag explains which branches the fork point was inferred from
  • changed: git machete github update-pr-descriptions and git machete gitlab update-mr-descriptions now default to --related when no flag (--all/--by/--mine/--related) is provided
  • changed: git machete status -l now 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 status when 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 traverse no longer crashes with NotADirectoryError: '.git/machete' when auto-slide-out fires inside a linked worktree (reported by @BertPluymersTR)
  • fixed: minor glitches in shell completions
  • fixed: parsing of gh --version output for custom/devel gh builds (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

Choose a tag to compare

@git-machete-bot git-machete-bot released this 29 Apr 16:50
  • 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

Choose a tag to compare

@git-machete-bot git-machete-bot released this 01 Apr 11:57
  • added: cd-into-temporary-worktree value for machete.traverse.whenBranchNotCheckedOutInAnyWorktree git config key (suggested by @andrii0lomakin)
  • changed: when a branch is behind remote (needs a pull), git machete traverse now skips rebase,
    just as it did already when branch is diverged from & older than remote (suggested by @lsierant)
  • fixed: when git machete traverse failed 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

Choose a tag to compare

@git-machete-bot git-machete-bot released this 27 Mar 15:32
  • improved: interactive git machete go displays a branch layout as in status
  • fixed: interactive git machete go now fails immediately when stdout is not a TTY (e.g. when piped) instead of behaving chaotically
  • improved: user-facing messages in go, show, traverse for the case of single root (contributed by @mvanhorn)

v3.39.1

Choose a tag to compare

@git-machete-bot git-machete-bot released this 07 Mar 15:25
793629e
  • changed: whenever git-machete prints a path on Windows, the path is now POSIX-compatible (with /)
  • fixed: suggested update command in deprecation message for fork-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-base results are written into .git/machete-merge-base-cache for faster retrieval in large repositories

v3.39.0

Choose a tag to compare

@git-machete-bot git-machete-bot released this 29 Jan 20:39
  • added: machete.traverse.whenBranchNotCheckedOutInAnyWorktree git 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-descriptions flag now always update the entire stack (both upstream and downstream PRs/MRs);
    the description style still respects the machete.github.prDescriptionIntroStyle or machete.gitlab.mrDescriptionIntroStyle config setting
  • fixed: go first, go last, go root no 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: advance now 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>... OK message is printed out for consistency