Skip to content

Releases: git-town/git-town

v22.5.0

26 Jan 21:28
Immutable release. Only release title and notes can be modified.
0de0db7

Choose a tag to compare

New Features

  • The Git Town CLI can now embed breadcrumbs in proposals. This helps reviewers understand where a branch sits in a stack. Enable it via the new proposal-breadcrumb setting and choose between stacks or branches (docs, #3003).
  • Added git-town commit, a new command that lets you commit changes from your current branch directly into an ancestor branch and then syncs those changes back into your current branch. This makes it much easier to work on complex, cross-cutting changes in one place while committing each part to the correct branch in your stack (#5760).

Bug Fixes

  • Fixed git-town detach to correctly handle branches with multiple children (#5988).
  • Fixed git-town propose --stack to properly sync branches before proposing (#5973).

Contribution branches

Huge thanks to @AlexanderCiridae, @JaredSharplin, @ceilfors, @cjol, @davidolrik, @haltcase, @kevgo, @meowsus, @mrmarufpro, @mw00120, @nemith, @oleg-codaio, @ruudk, @stephenwade, @towry, @tranhl, @yaadata, @zodman for contributing code, ideas, and feedback to 122 shipped pull requests and 5 resolved issues!

v22.4.0

24 Dec 19:33
Immutable release. Only release title and notes can be modified.
9b3a6d1

Choose a tag to compare

New Features

  • sync now has a --gone flag to only sync (i.e. remove) branches that have already been shipped or deleted on the remote. This provides a low-risk way to clean up obsolete local branches without configuring branch types or touching anything active (#5845).
  • ship can now ignore uncommitted changes via the new ignore-uncommitted configuration setting, making it easier to ship in messy working directories when you know what you're doing (#5837).
  • propose --stack now supports skipping branches where proposal creation fails instead of aborting by running git town skip (#5869).
  • config --redact now also obfuscates the configured user email in addition to other sensitive values (#5850).

Bug Fixes

  • Improved handling of branches that exist across multiple Git remotes (#5838).
  • propose --stack now skips branches where proposal creation failed but the proposal exists anyways (#5865).
  • init now correctly persists connector types to the config file (#5817).
  • sync --all now switches to a branch that is available in the worktree before deleting a shipped branch (#5847).

Contributors

Shoutout to @degauden, @kevgo, @meowsus, @pcfreak30, @stephenwade for contributing code, feedback, and ideas to 62 shipped pull requests and 7 resolved issues!

v22.3.0

14 Dec 01:38
Immutable release. Only release title and notes can be modified.
e9e446f

Choose a tag to compare

New Features

  • All Git Town commands now also show the negated forms of CLI flags in their help output, making it clearer how to disable options (#5814).
  • Added a new branch-prefix config setting that automatically prepends a prefix to branches created by Git Town (#5677).
  • git town skip gained a --park flag to permanently skip this branch (#5839).
  • git town config now supports a --redact flag that obfuscates sensitive configuration data like access tokens, making it safer to share configuration in bug reports (#5831).
  • git town switch gained a --stash flag to explicitly disable stashing uncommitted changes (#5778).
  • You can now configure which browser Git Town opens via the new browser config setting. Previously this was only configurable through the BROWSER environment variable (#5818).
  • A JSON Schema for the Git Town config file is now published on schemastore.org, enabling validation and editor autocompletion (#5703).

Bug Fixes

  • Git Town now retries backend Git commands that fail due to concurrent Git usage (for example when your IDE races the CLI) (#5816).
  • The setup assistant no longer deletes advanced configuration when running a quick setup (#5802).
  • The setup assistant now reliably writes all config values to the config file (#5803).
  • git town sync now switches to a local branch available in the current worktree before deleting the current branch (#5797).
  • git town sync avoids phantom merge conflicts by no longer syncing with tracking branches of ancestors if their local branch is unavailable in the current worktree (#5791).
  • git town hack --beam now works correctly with worktrees and branches without an ancestor (#5690).
  • git town sync --prune no longer crashes when the current branch has already been shipped at the remote (#5704)
  • git town walk now skips branches that aren't available in the current worktree (#5714).
  • git town propose now only opens proposals that are still active (#5745).
  • The share-new-branches config setting now accepts a wider range of values (#5719).

Contributors

Huge thanks to @erik-rw, @j2fw, @james-harlyy, @kevgo, @lukeramsden, @meowsus, @ruudk, @stephenwade, @yaadata for contributing code, ideas, and feedback to 130 merged pull requests and 19 resolved issues!

v22.2.0

31 Oct 22:06
Immutable release. Only release title and notes can be modified.
39162ec

Choose a tag to compare

New Features

  • Git Town now supports a non-hidden config file, i.e. git-town.toml, in addition to the existing config file names (#5614).
  • The new order configuration setting allows displaying lists of branches in reverse order, for example in switch, branch, up, down, and config. This is useful if you prefix your branches with the creation date like YYYYMM and want to see the newest branches on top (#5615).
  • The new display-types configuration setting allows configuring which branch types Git Town shows in lists of branches. This affects the branch, switch, config, down, and up commands and all internal dialogs that ask to select a branch or parent branch (#5659).
  • switch: you can now toggle to show all branches on and off using the a hotkey (#5624).
  • setup assistant: now runs in the presence of invalid configuration data and overwrites it (#5598).
  • Git Town now uses the Git user name also from the environment variables GIT_AUTHOR_EMAIL, GIT_COMMITTER_EMAIL, GIT_AUTHOR_NAME, and GIT_COMMITTER_NAME if they aren't set in Git metadata user.email and user.name (#5668).

Bug Fixes

  • compress: works if a folder has the same name as a branch (#5594).
  • ship: works if a folder has the same name as a branch (#5657).
  • set-parent: only changes commits of feature or prototype branches (#5605).
  • propose: correctly passes on a --body tag without content (#5496).
  • propose: the gh connector no longer crashes if the user chooses Continue in browser (#5681).
  • sync: pruning a freshly created branch no longer crashes (#5660).
  • hack: now always sets the correct branch type (#5609).
  • hack: --beam from a branch without parent now asks for the branch parent (#5121).
  • init: no longer crashes if if there are no remotes (#5608).
  • switch: can now combine --all and --display-types (#5648).
  • dead links on the "Contributing" tab on GitHub are fixed (#5679).

Contributors

Shoutout to @AmitJoki, @GamerGirlandCo, @Varedis, @caccavale, @derekspelledcorrectly, @j2fw, @james-harlyy, @kevgo, @kevinmichaelchen, @mrmarufpro, @nebbles, @ruudk, @stephenwade, @thattomperson, @tranhl, @tugrulates, @yaadata for contributing code, feedback, ideas, and bug fixes to 58 shipped pull requests and 24 resolved issues!

v22.1.0

14 Oct 00:52
Immutable release. Only release title and notes can be modified.
9bf63e6

Choose a tag to compare

New Features

  • if you run a Git Town command while another is suspended, Git Town now offers the option to finish the suspended program and then run the new one (#3337).

Bug Fixes

  • Fixes bugs resulting from the new Option serialization (#5623).

Contributors

Shoutout to @DPirate, @IGassmann, @Mause, @derekspelledcorrectly, @ethankeshishian, @kevgo, @stephenwade, @yaadata, @Shmookoff for contributing code, bug reports, and ideas to 24 shipped pull requests and 4 resolved issues!

v22.0.0

23 Sep 13:01
b3c5f6b

Choose a tag to compare

BREAKING CHANGES

  • Renamed the codeberg connector to forgejo since it supports all Forgejo-based forges. Codeberg itself runs on Forgejo (#5447).
  • Start the setup assistant with git town init instead of git town config setup, matching Git's git init (#5269).
  • git town hack no longer converts an existing branch into a feature branch. Use the new feature command instead (#5516).
  • The contribute, feature, observe, park, and prototype commands no longer signal a problem when you run them on a branch that already has the desired type.
  • Removed the long-deprecated kill command. Use delete instead.

New Features

  • Added support for Azure DevOps (#1657).
  • Introduced the push-branches setting to control whether Git Town pushes local changes to tracking branches automatically. Disable it if you prefer to push manually (#5541).
  • Introduced the auto-sync setting to control whether hack, append, and prepend sync existing branches before creating a new one (#5540).
  • set-parent: added the --none flag to create perennial branches programmatically.

Bug Fixes

  • Fixed git town branch in repos with a detached HEAD (#5565).

Contributors

Shoutout to @Phunky, @alexus37, @aximut, @bb010g, @benmosher, @blaggacao, @charlierudolph, @derekspelledcorrectly, @kevgo, @kinyat, @maruffahmed, @oludaara, @pradeepmurugesan, @sheldonhull, @stefanfrede, @stephenwade, @vectro, @whitebear-gh, @yaadata for contributiong code, feedback, and ideas to 78 shipped pull requests and 12 resolved issues!

v21.5.0

05 Sep 16:03
c9ca923

Choose a tag to compare

New Features

  • Added up and down commands to quickly move to the child or parent of the current branch (#5432).

  • All configuration settings can now be provided via environment variables, in addition to the config file and Git metadata. This makes it easy to use custom scripts that provide configuration data (#5446). For example, to load an API token from 1password CLI:

    GIT_TOWN_GITHUB_TOKEN=$(op read op://development/GitHub/credentials/personal_token) git town config
  • The hack, append, and prepend commands now support a stash flag and config option to leave staged changes as-is. Handy if you've carefully prepared an index you want to commit to a new branch (#5429).

  • The setup assistant can now do a quick setup with only the essential settings (#5484).

  • Added a new feature command to convert the given or current branch into a feature branch (#5376).

  • The detached sync flag can now be permanently enabled through the new detached configuration setting (#5452).

  • The auto-resolve flag can now be disabled with --no-auto-resolve (#5458).

Bug Fixes

  • The setup assistant no longer stores a dev-remote when the user selects the default option (#5492).

Contributors

Shoutout to @fuadsaud, @kevgo, @stefanfrede, @stephenwade, @yaadata for contributing code, feedback, and ideas to 65 shipped PRs and 10 resolved issues!

v21.4.3

15 Aug 12:45
1776f92

Choose a tag to compare

Bug Fixes

  • Fewer phantom merge conflicts: Git Town now performs a rebase-onto only if there are actual commits to remove. If there are no commits to remove, Git Town performs a regular rebase, or if there is no need to sync, no rebase at all. (#5422)
  • "git town branch" prints branches in other worktrees de-emphasized (#5405)

Contributors

Shoutout to @AmitJoki, @Ydot19, @avaz, @benmosher, @kevgo, @nebbles, @nekitk, @stephenwade, @tranhl for contributing feedback, ideas, and code to 47 shipped PRs and 3 resolved issues!

v21.4.2

11 Aug 22:30
18a91ad

Choose a tag to compare

Bug Fixes

  • Git Town no longer mistakes legit file conflicts for phantom conflicts (#5156, #5140)
  • delete: Git Town now rebases onto the correct branch (#5358)

v21.4.1

05 Aug 19:31
00205ee

Choose a tag to compare

Bug Fixes

  • Fixes parsing of the new Git metadata config entries that disable auto-resolving phantom conflicts (#5326).