Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package git-town for openSUSE:Factory 
checked in at 2026-11-06 19:58:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/git-town (Old)
 and      /work/SRC/openSUSE:Factory/.git-town.new.3759290 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "git-town"

Fri Nov  6 19:58:56 2026 rev:21 rq:1395862 version:24.1.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/git-town/git-town.changes        2026-09-28 
10:49:12.903896817 +0200
+++ /work/SRC/openSUSE:Factory/.git-town.new.3759290/git-town.changes   
2026-11-06 20:07:18.845721499 +0100
@@ -1,0 +2,8 @@
+Fri Nov 06 13:48:12 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 24.1.1:
+  * Bug Fixes
+    - set-parent: allow selecting a parent that is checked out in
+      another worktree (#6298).
+
+-------------------------------------------------------------------

Old:
----
  git-town-24.1.0.obscpio

New:
----
  git-town-24.1.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ git-town.spec ++++++
--- /var/tmp/diff_new_pack.6v3fVY/_old  2026-11-06 20:07:20.336783984 +0100
+++ /var/tmp/diff_new_pack.6v3fVY/_new  2026-11-06 20:07:20.341784194 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           git-town
-Version:        24.1.0
+Version:        24.1.1
 Release:        0
 Summary:        Git branches made easy
 License:        MIT
@@ -25,7 +25,7 @@
 Source0:        %{name}-%{version}.tar.gz
 BuildRequires:  bash-completion
 BuildRequires:  fish
-BuildRequires:  go1.26 >= 1.26.1
+BuildRequires:  go1.26 >= 1.26.10
 BuildRequires:  zsh
 Requires:       git-core
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.6v3fVY/_old  2026-11-06 20:07:20.413787211 +0100
+++ /var/tmp/diff_new_pack.6v3fVY/_new  2026-11-06 20:07:20.422787588 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/git-town/git-town.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">refs/tags/v24.1.0</param>
+    <param name="revision">refs/tags/v24.1.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.6v3fVY/_old  2026-11-06 20:07:20.468789516 +0100
+++ /var/tmp/diff_new_pack.6v3fVY/_new  2026-11-06 20:07:20.477789893 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/git-town/git-town.git</param>
-              <param 
name="changesrevision">2fabf99bfd18f6ddc4e80e23f970df4ce3de9ff5</param></service></servicedata>
+              <param 
name="changesrevision">e66ec8b8b744bbe2ad5416dc4793e16b56a3e629</param></service></servicedata>
 (No newline at EOF)
 

++++++ git-town-24.1.0.obscpio -> git-town-24.1.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/.golangci.yml 
new/git-town-24.1.1/.golangci.yml
--- old/git-town-24.1.0/.golangci.yml   2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/.golangci.yml   2026-11-06 13:28:50.000000000 +0100
@@ -9,6 +9,7 @@
     - dupl # too many false positives
     - err113 # this leads to lots of unnecessary allocations and boilerplate
     - exhaustruct # we call this separately from golangci-lint via "make 
lint-smoke"
+    - exhaustruct_v5 # we call this separately from golangci-lint via "make 
lint-smoke"
     - forbidigo # Git Town prints a lot to the CLI
     - forcetypeassert
     - funlen # we keep track of this via code reviews
@@ -102,7 +103,7 @@
         path: internal/gohacks/slice/first_element_or.go
       - linters:
           - predeclared
-        text: package name print has same name as predeclared identifier
+        text: 'print: shadows predeclared identifier'
       - linters:
           - revive
         text: receiver name should be a reflection of its identity
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/CHANGELOG.md 
new/git-town-24.1.1/CHANGELOG.md
--- old/git-town-24.1.0/CHANGELOG.md    2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/CHANGELOG.md    2026-11-06 13:28:50.000000000 +0100
@@ -1,5 +1,15 @@
 # Git Town Changelog
 
+## 24.1.1 (2026-11-06)
+
+#### Bug Fixes
+
+- set-parent: allow selecting a parent that is checked out in another worktree 
([#6298](https://github.com/git-town/git-town/pull/6298)).
+
+#### Contributors
+
+Shoutout to @JaredSharplin, @WhosNickDoglio, @efim0v, @genx7up, @hamzahamidi, 
@kevgo, @mrmarufpro for contributing ideas, feedback, and code to 6 shipped 
pull requests and 3 resolved issues!
+
 ## 24.1.0 (2026-09-26)
 
 #### New Features
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/Makefile new/git-town-24.1.1/Makefile
--- old/git-town-24.1.0/Makefile        2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/Makefile        2026-11-06 13:28:50.000000000 +0100
@@ -1,8 +1,8 @@
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 
 # internal data and state
 .DEFAULT_GOAL := help
-RELEASE_VERSION := "24.1.0"
+RELEASE_VERSION := "24.1.1"
 GO_TEST_ARGS = LANG=C GOGC=off
 
 RTA          = tools/rta@$(RTA_VERSION)
@@ -207,7 +207,7 @@
        @(cd tools/optioncompare && go build) && 
./tools/optioncompare/optioncompare github.com/git-town/git-town/v24/...
 
 lint-smoke: ${RTA}  # runs only the essential linters
-       @$(EXHAUSTRUCT) -test=false "-i=github.com/git-town/git-town.*" 
github.com/git-town/git-town/...
+       @$(EXHAUSTRUCT) -test=false -explicit 
"-enforce-rx=github.com/git-town/git-town.*" github.com/git-town/git-town/...
 # @$(RTA) ireturn 
--reject="github.com/git-town/git-town/v24/pkg/prelude.Option" 
github.com/git-town/git-town/...
 
 lint-structs-sorted:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/docs/ARCHITECTURE.md 
new/git-town-24.1.1/docs/ARCHITECTURE.md
--- old/git-town-24.1.0/docs/ARCHITECTURE.md    2026-09-26 15:40:51.000000000 
+0200
+++ new/git-town-24.1.1/docs/ARCHITECTURE.md    2026-11-06 13:28:50.000000000 
+0100
@@ -104,8 +104,8 @@
 
 The
 [Go code review comments wiki 
page](https://go.dev/wiki/CodeReviewComments#receiver-names)
-suggests using short, one or two-letter names for method receivers,
-rather than generic names like `this` or `self`.
+suggests using short, one or two-letter names for method receivers, rather than
+generic names like `this` or `self`.
 After many years of following this guideline in the Git Town codebase,
 we found it to be impractical and cumbersome.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/docs/RELEASE.md 
new/git-town-24.1.1/docs/RELEASE.md
--- old/git-town-24.1.0/docs/RELEASE.md 2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/docs/RELEASE.md 2026-11-06 13:28:50.000000000 +0100
@@ -12,7 +12,7 @@
     the README file
   - verify that the website content reflects all the changes made
   - search-and-replace the old version with the new version
-    - triple-digits: `24.1.0`
+    - triple-digits: `24.1.1`
     - double-digits: `24.1`
     - its best to do this manually so that you don't change unrelated version
       numbers in CHANGELOG.md, lockfiles, and data files
@@ -21,7 +21,7 @@
     - update `github.com/git-town/git-town/v24` (without trailing slash)
   - update the changelog with links to the website
 - ship the branch
-- `git sync --all && git checkout main && git tag v24.1.0 && git push --tags`
+- `git sync --all && git checkout main && git tag v24.1.1 && git push --tags`
 - wait for CI to finish the release:
   <https://github.com/git-town/git-town/actions>
 - edit the new unpublished release:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/features/diff_parent/worktree/parent_in_other_worktree.feature
 
new/git-town-24.1.1/features/diff_parent/worktree/parent_in_other_worktree.feature
--- 
old/git-town-24.1.0/features/diff_parent/worktree/parent_in_other_worktree.feature
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/git-town-24.1.1/features/diff_parent/worktree/parent_in_other_worktree.feature
  2026-11-06 13:28:50.000000000 +0100
@@ -0,0 +1,23 @@
+@messyoutput
+Feature: select a branch that is active in another worktree as the missing 
parent
+
+  Scenario: feature branch without parent
+    Given a Git repo with origin
+    And the branches
+      | NAME     | TYPE    | PARENT | LOCATIONS |
+      | branch-1 | feature | main   | local     |
+      | branch-2 | (none)  |        | local     |
+    And the current branch is "branch-2"
+    And branch "branch-1" is active in another worktree
+    When I run "git-town diff-parent" and enter into the dialog:
+      | DIALOG                       | KEYS       |
+      | parent branch for "branch-2" | down enter |
+    Then Git Town runs the commands
+      | BRANCH   | COMMAND                                 |
+      | branch-2 | git diff --merge-base branch-1 branch-2 |
+    And this lineage exists now
+      """
+      main
+        branch-1
+          branch-2
+      """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/features/hack/beam/parent_in_other_worktree.feature 
new/git-town-24.1.1/features/hack/beam/parent_in_other_worktree.feature
--- old/git-town-24.1.0/features/hack/beam/parent_in_other_worktree.feature     
1970-01-01 01:00:00.000000000 +0100
+++ new/git-town-24.1.1/features/hack/beam/parent_in_other_worktree.feature     
2026-11-06 13:28:50.000000000 +0100
@@ -0,0 +1,56 @@
+@messyoutput
+Feature: beam commits from a branch whose new parent is active in another 
worktree
+
+  Background:
+    Given a Git repo with origin
+    And the branches
+      | NAME       | TYPE    | PARENT | LOCATIONS     |
+      | existing-1 | (none)  |        | local, origin |
+      | existing-2 | feature | main   | local, origin |
+    And the commits
+      | BRANCH     | LOCATION | MESSAGE     |
+      | main       | origin   | main commit |
+      | existing-1 | local    | commit 1a   |
+      | existing-1 | local    | commit 1b   |
+      | existing-2 | local    | commit 2    |
+    And the current branch is "existing-1"
+    And branch "existing-2" is active in another worktree
+    When I run "git-town hack new --beam" and enter into the dialog:
+      | DIALOG                         | KEYS             |
+      | parent branch for "existing-1" | down enter       |
+      | commits to beam                | down space enter |
+
+  Scenario: result
+    Then Git Town runs the commands
+      | BRANCH     | COMMAND                                                   
                                                |
+      | existing-1 | git checkout -b new main                                  
                                                |
+      | new        | git cherry-pick {{ sha-initial 'commit 1b' }}             
                                                |
+      |            | git checkout existing-1                                   
                                                |
+      | existing-1 | git -c rebase.updateRefs=false rebase --onto {{ 
sha-initial 'commit 1b' }}^ {{ sha-initial 'commit 1b' }} |
+      |            | git push --force-with-lease --force-if-includes           
                                                |
+      |            | git checkout new                                          
                                                |
+    And no rebase is now in progress
+    And this lineage exists now
+      """
+      main
+        existing-2
+          existing-1
+        new
+      """
+    And these commits exist now
+      | BRANCH     | LOCATION                | MESSAGE     |
+      | main       | origin                  | main commit |
+      | existing-2 | worktree                | commit 2    |
+      | existing-1 | local, origin, worktree | commit 1a   |
+      | new        | local                   | commit 1b   |
+
+  Scenario: undo
+    When I run "git-town undo"
+    Then Git Town runs the commands
+      | BRANCH     | COMMAND                                                   
               |
+      | new        | git checkout existing-1                                   
               |
+      | existing-1 | git reset --hard {{ sha-initial 'commit 1b' }}            
               |
+      |            | git push --force-with-lease origin {{ sha 'initial 
commit' }}:existing-1 |
+      |            | git branch -D new                                         
               |
+    And the initial branches and lineage exist now
+    And the initial commits exist now
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/features/set_parent/worktree/new_parent_in_other_worktree.feature
 
new/git-town-24.1.1/features/set_parent/worktree/new_parent_in_other_worktree.feature
--- 
old/git-town-24.1.0/features/set_parent/worktree/new_parent_in_other_worktree.feature
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/git-town-24.1.1/features/set_parent/worktree/new_parent_in_other_worktree.feature
       2026-11-06 13:28:50.000000000 +0100
@@ -0,0 +1,33 @@
+@messyoutput
+Feature: select a branch that is active in another worktree as the new parent
+
+  Background:
+    Given a Git repo with origin
+    And the branches
+      | NAME     | TYPE    | PARENT | LOCATIONS     |
+      | branch-1 | feature | main   | local, origin |
+      | branch-2 | feature | main   | local, origin |
+    And the current branch is "branch-2"
+    And branch "branch-1" is active in another worktree
+    When I run "git-town set-parent" and enter into the dialog:
+      | DIALOG                       | KEYS       |
+      | parent branch for "branch-2" | down enter |
+
+  Scenario: result
+    Then Git Town runs no commands
+    And Git Town prints:
+      """
+      branch branch-2 is now a child of branch-1
+      """
+    And this lineage exists now
+      """
+      main
+        branch-1
+          branch-2
+      """
+
+  Scenario: undo
+    When I run "git-town undo"
+    Then Git Town runs no commands
+    And the initial branches and lineage exist now
+    And the initial commits exist now
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/features/version/version.feature 
new/git-town-24.1.1/features/version/version.feature
--- old/git-town-24.1.0/features/version/version.feature        2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/features/version/version.feature        2026-11-06 
13:28:50.000000000 +0100
@@ -6,5 +6,5 @@
     When I run "git-town --version"
     Then Git Town prints:
       """
-      Git Town 24.1.0
+      Git Town 24.1.1
       """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/go.mod new/git-town-24.1.1/go.mod
--- old/git-town-24.1.0/go.mod  2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/go.mod  2026-11-06 13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 module github.com/git-town/git-town/v24
 
-go 1.26.1
+go 1.26.9
 
 require (
        code.gitea.io/sdk/gitea v0.25.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/go.work new/git-town-24.1.1/go.work
--- old/git-town-24.1.0/go.work 2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/go.work 2026-11-06 13:28:50.000000000 +0100
@@ -1,4 +1,4 @@
-go 1.26.1
+go 1.26.9
 
 use (
        .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/internal/cli/dialog/dialogcomponents/list/entry.go 
new/git-town-24.1.1/internal/cli/dialog/dialogcomponents/list/entry.go
--- old/git-town-24.1.0/internal/cli/dialog/dialogcomponents/list/entry.go      
2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/cli/dialog/dialogcomponents/list/entry.go      
2026-11-06 13:28:50.000000000 +0100
@@ -3,6 +3,6 @@
 // Entry is an entry in a List instance.
 type Entry[S any] struct {
        Data     S
-       Disabled bool `exhaustruct:"optional"`
+       Disabled bool //exhaustruct:optional
        Text     string
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/cli/dialog/lineage.go 
new/git-town-24.1.1/internal/cli/dialog/lineage.go
--- old/git-town-24.1.0/internal/cli/dialog/lineage.go  2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/cli/dialog/lineage.go  2026-11-06 
13:28:50.000000000 +0100
@@ -82,9 +82,10 @@
                entriesArgs.ShowAllBranches = false
                entriesLocal := append(SwitchBranchEntries{noneEntry}, 
NewSwitchBranchEntries(entriesArgs)...)
                newParent, exit, err := SwitchBranch(SwitchBranchArgs{
-                       CurrentBranch:      None[gitdomain.LocalBranchName](),
-                       Cursor:             1, // select the "main branch" 
entry, below the "make perennial" entry
-                       DisplayBranchTypes: 
args.Config.NormalConfig.DisplayTypes,
+                       CurrentBranch:                   
None[gitdomain.LocalBranchName](),
+                       Cursor:                          1, // select the "main 
branch" entry, below the "make perennial" entry
+                       DisableBranchesInOtherWorktrees: false,
+                       DisplayBranchTypes:              
args.Config.NormalConfig.DisplayTypes,
                        EntryData: EntryData{
                                EntriesAll:      entriesAll,
                                EntriesLocal:    entriesLocal,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/cli/dialog/switch_branch.go 
new/git-town-24.1.1/internal/cli/dialog/switch_branch.go
--- old/git-town-24.1.0/internal/cli/dialog/switch_branch.go    2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/cli/dialog/switch_branch.go    2026-11-06 
13:28:50.000000000 +0100
@@ -72,11 +72,12 @@
 
 type SwitchModel struct {
        list.List[SwitchBranchEntry]
-       DisplayBranchTypes configdomain.DisplayTypes
-       EntryData          EntryData
-       InitialBranchPos   Option[int]    // position of the currently checked 
out branch in the list
-       Title              Option[string] // optional title to display above 
the branch tree
-       UncommittedChanges bool           // whether the workspace has 
uncommitted changes
+       DisableBranchesInOtherWorktrees bool // whether branches that are 
active in other worktrees cannot be selected
+       DisplayBranchTypes              configdomain.DisplayTypes
+       EntryData                       EntryData
+       InitialBranchPos                Option[int]    // position of the 
currently checked out branch in the list
+       Title                           Option[string] // optional title to 
display above the branch tree
+       UncommittedChanges              bool           // whether the workspace 
has uncommitted changes
 }
 
 func (self SwitchModel) Init() tea.Cmd {
@@ -101,7 +102,7 @@
        }
        if keyMsg.String() == "a" {
                self.EntryData.toggle()
-               self.List = 
list.NewList(newSwitchBranchListEntries(self.EntryData.entries()), 
min(self.Cursor, len(self.EntryData.EntriesLocal)-1))
+               self.List = 
list.NewList(newSwitchBranchListEntries(self.EntryData.entries(), 
self.DisableBranchesInOtherWorktrees), min(self.Cursor, 
len(self.EntryData.EntriesLocal)-1))
                return self, nil
        }
        return self, nil
@@ -286,12 +287,13 @@
                initialBranchPos = Some(entries.IndexOf(currentBranch))
        }
        dialogProgram := tea.NewProgram(SwitchModel{
-               DisplayBranchTypes: args.DisplayBranchTypes,
-               EntryData:          args.EntryData,
-               InitialBranchPos:   initialBranchPos,
-               List:               
list.NewList(newSwitchBranchListEntries(entries), args.Cursor),
-               Title:              args.Title,
-               UncommittedChanges: args.UncommittedChanges,
+               DisableBranchesInOtherWorktrees: 
args.DisableBranchesInOtherWorktrees,
+               DisplayBranchTypes:              args.DisplayBranchTypes,
+               EntryData:                       args.EntryData,
+               InitialBranchPos:                initialBranchPos,
+               List:                            
list.NewList(newSwitchBranchListEntries(entries, 
args.DisableBranchesInOtherWorktrees), args.Cursor),
+               Title:                           args.Title,
+               UncommittedChanges:              args.UncommittedChanges,
        })
        dialogcomponents.SendInputs(args.InputName, args.Inputs.Next(), 
dialogProgram)
        dialogResult, err := dialogProgram.Run()
@@ -301,15 +303,16 @@
 }
 
 type SwitchBranchArgs struct {
-       CurrentBranch      Option[gitdomain.LocalBranchName]
-       Cursor             int
-       DisplayBranchTypes configdomain.DisplayTypes
-       EntryData          EntryData
-       InputName          string
-       Inputs             dialogcomponents.Inputs
-       Interactive        configdomain.Interactive
-       Title              Option[string]
-       UncommittedChanges bool
+       CurrentBranch                   Option[gitdomain.LocalBranchName]
+       Cursor                          int
+       DisableBranchesInOtherWorktrees bool
+       DisplayBranchTypes              configdomain.DisplayTypes
+       EntryData                       EntryData
+       InputName                       string
+       Inputs                          dialogcomponents.Inputs
+       Interactive                     configdomain.Interactive
+       Title                           Option[string]
+       UncommittedChanges              bool
 }
 
 // layoutBranches adds entries for the given branch and its children to the 
given entry list.
@@ -369,12 +372,12 @@
        unknownBranchType configdomain.UnknownBranchType
 }
 
-func newSwitchBranchListEntries(switchBranchEntries []SwitchBranchEntry) 
list.Entries[SwitchBranchEntry] {
+func newSwitchBranchListEntries(switchBranchEntries []SwitchBranchEntry, 
disableBranchesInOtherWorktrees bool) list.Entries[SwitchBranchEntry] {
        result := make(list.Entries[SwitchBranchEntry], 
len(switchBranchEntries))
        for e, entry := range switchBranchEntries {
                result[e] = list.Entry[SwitchBranchEntry]{
                        Data:     entry,
-                       Disabled: entry.OtherWorktree,
+                       Disabled: disableBranchesInOtherWorktrees && 
entry.OtherWorktree,
                        Text:     entry.String(),
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/internal/cli/dialog/switch_branch_test.go 
new/git-town-24.1.1/internal/cli/dialog/switch_branch_test.go
--- old/git-town-24.1.0/internal/cli/dialog/switch_branch_test.go       
2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/cli/dialog/switch_branch_test.go       
2026-11-06 13:28:50.000000000 +0100
@@ -4,6 +4,7 @@
        "regexp"
        "testing"
 
+       tea "github.com/charmbracelet/bubbletea"
        "github.com/git-town/git-town/v24/internal/cli/dialog"
        
"github.com/git-town/git-town/v24/internal/cli/dialog/dialogcomponents/list"
        "github.com/git-town/git-town/v24/internal/config/configdomain"
@@ -458,6 +459,50 @@
                })
        })
 
+       t.Run("Update", func(t *testing.T) {
+               t.Parallel()
+               t.Run("toggle all branches", func(t *testing.T) {
+                       t.Parallel()
+                       entries := dialog.SwitchBranchEntries{
+                               {Branch: "main", Indentation: "", 
OtherWorktree: false, Type: configdomain.BranchTypeMainBranch},
+                               {Branch: "alpha", Indentation: "  ", 
OtherWorktree: true, Type: configdomain.BranchTypeFeatureBranch},
+                               {Branch: "beta", Indentation: "  ", 
OtherWorktree: false, Type: configdomain.BranchTypeFeatureBranch},
+                       }
+                       t.Run("allow branches in other worktrees", func(t 
*testing.T) {
+                               t.Parallel()
+                               model := dialog.SwitchModel{
+                                       DisableBranchesInOtherWorktrees: false,
+                                       EntryData: dialog.EntryData{
+                                               EntriesAll:      entries,
+                                               EntriesLocal:    entries,
+                                               ShowAllBranches: false,
+                                       },
+                               }
+                               toggledModel, _ := 
model.Update(tea.KeyMsg{Runes: []rune{'a'}, Type: tea.KeyRunes})
+                               movedModel, _ := 
toggledModel.Update(tea.KeyMsg{Type: tea.KeyDown})
+                               have := 
movedModel.(dialog.SwitchModel).List.SelectedData().Branch
+                               want := gitdomain.LocalBranchName("alpha")
+                               must.EqOp(t, want, have)
+                       })
+                       t.Run("disable branches in other worktrees", func(t 
*testing.T) {
+                               t.Parallel()
+                               model := dialog.SwitchModel{
+                                       DisableBranchesInOtherWorktrees: true,
+                                       EntryData: dialog.EntryData{
+                                               EntriesAll:      entries,
+                                               EntriesLocal:    entries,
+                                               ShowAllBranches: false,
+                                       },
+                               }
+                               toggledModel, _ := 
model.Update(tea.KeyMsg{Runes: []rune{'a'}, Type: tea.KeyRunes})
+                               movedModel, _ := 
toggledModel.Update(tea.KeyMsg{Type: tea.KeyDown})
+                               have := 
movedModel.(dialog.SwitchModel).List.SelectedData().Branch
+                               want := gitdomain.LocalBranchName("beta")
+                               must.EqOp(t, want, have)
+                       })
+               })
+       })
+
        t.Run("View", func(t *testing.T) {
                t.Parallel()
                t.Run("only the main branch exists", func(t *testing.T) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/cmd/hack.go 
new/git-town-24.1.1/internal/cmd/hack.go
--- old/git-town-24.1.0/internal/cmd/hack.go    2026-09-26 15:40:51.000000000 
+0200
+++ new/git-town-24.1.1/internal/cmd/hack.go    2026-11-06 13:28:50.000000000 
+0100
@@ -347,9 +347,10 @@
                entriesArgs.ShowAllBranches = false
                entriesLocal := append(dialog.SwitchBranchEntries{noneEntry}, 
dialog.NewSwitchBranchEntries(entriesArgs)...)
                newParent, exit, err := 
dialog.SwitchBranch(dialog.SwitchBranchArgs{
-                       CurrentBranch:      None[gitdomain.LocalBranchName](),
-                       Cursor:             1, // select the "main branch" 
entry, below the "make perennial" entry
-                       DisplayBranchTypes: 
validatedConfig.NormalConfig.DisplayTypes,
+                       CurrentBranch:                   
None[gitdomain.LocalBranchName](),
+                       Cursor:                          1, // select the "main 
branch" entry, below the "make perennial" entry
+                       DisableBranchesInOtherWorktrees: false,
+                       DisplayBranchTypes:              
validatedConfig.NormalConfig.DisplayTypes,
                        EntryData: dialog.EntryData{
                                EntriesAll:      entriesAll,
                                EntriesLocal:    entriesLocal,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/cmd/set_parent.go 
new/git-town-24.1.1/internal/cmd/set_parent.go
--- old/git-town-24.1.0/internal/cmd/set_parent.go      2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/cmd/set_parent.go      2026-11-06 
13:28:50.000000000 +0100
@@ -166,9 +166,10 @@
                        args.ShowAllBranches = true
                        entriesAll := 
append(dialog.SwitchBranchEntries{noneEntry}, 
dialog.NewSwitchBranchEntries(args)...)
                        selectedParent, exit, err = 
dialog.SwitchBranch(dialog.SwitchBranchArgs{
-                               CurrentBranch:      
None[gitdomain.LocalBranchName](),
-                               Cursor:             
entriesLocal.IndexOf(data.defaultChoice),
-                               DisplayBranchTypes: 
data.config.NormalConfig.DisplayTypes,
+                               CurrentBranch:                   
None[gitdomain.LocalBranchName](),
+                               Cursor:                          
entriesLocal.IndexOf(data.defaultChoice),
+                               DisableBranchesInOtherWorktrees: false,
+                               DisplayBranchTypes:              
data.config.NormalConfig.DisplayTypes,
                                EntryData: dialog.EntryData{
                                        EntriesAll:      entriesAll,
                                        EntriesLocal:    entriesLocal,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/cmd/switch.go 
new/git-town-24.1.1/internal/cmd/switch.go
--- old/git-town-24.1.0/internal/cmd/switch.go  2026-09-26 15:40:51.000000000 
+0200
+++ new/git-town-24.1.1/internal/cmd/switch.go  2026-11-06 13:28:50.000000000 
+0100
@@ -142,9 +142,10 @@
        }
        cursor := entriesLocal.IndexOf(data.initialBranch)
        branchToCheckout, exit, err := 
dialog.SwitchBranch(dialog.SwitchBranchArgs{
-               CurrentBranch:      Some(data.initialBranch),
-               Cursor:             cursor,
-               DisplayBranchTypes: 
repo.UnvalidatedConfig.NormalConfig.DisplayTypes,
+               CurrentBranch:                   Some(data.initialBranch),
+               Cursor:                          cursor,
+               DisableBranchesInOtherWorktrees: true,
+               DisplayBranchTypes:              
repo.UnvalidatedConfig.NormalConfig.DisplayTypes,
                EntryData: dialog.EntryData{
                        EntriesAll:      entriesAll,
                        EntriesLocal:    entriesLocal,
@@ -164,8 +165,7 @@
        }
        if err := performSwitch(branchToCheckout, 
args.cliConfig.Stash.GetOr(false), data.hasOpenChanges, args.merge, repo); err 
!= nil {
                exitCode := 1
-               var exitErr *exec.ExitError
-               if errors.As(err, &exitErr) {
+               if exitErr, ok := errors.AsType[*exec.ExitError](err); ok {
                        exitCode = exitErr.ExitCode()
                }
                os.Exit(exitCode)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/config/configdomain/key.go 
new/git-town-24.1.1/internal/config/configdomain/key.go
--- old/git-town-24.1.0/internal/config/configdomain/key.go     2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/config/configdomain/key.go     2026-11-06 
13:28:50.000000000 +0100
@@ -9,7 +9,7 @@
 )
 
 // Key contains all the keys used in Git Town's Git metadata configuration.
-type Key string //nolint: recvcheck // MarshalJSON and UnmarshalJSON require 
different receiver types
+type Key string
 
 // ConfigSetting contains a key-value pair for a configuration setting.
 type ConfigSetting struct {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/internal/config/gitconfig/low_level.go 
new/git-town-24.1.1/internal/config/gitconfig/low_level.go
--- old/git-town-24.1.0/internal/config/gitconfig/low_level.go  2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/config/gitconfig/low_level.go  2026-11-06 
13:28:50.000000000 +0100
@@ -99,8 +99,7 @@
 // RemoveLocalGitConfiguration removes all Git Town configuration.
 func RemoveLocalGitConfiguration(runner subshelldomain.Runner, localSnapshot 
configdomain.SingleSnapshot) error {
        if err := runner.Run("git", "config", "--remove-section", "git-town"); 
err != nil {
-               var exitErr *exec.ExitError
-               if errors.As(err, &exitErr) {
+               if exitErr, ok := errors.AsType[*exec.ExitError](err); ok {
                        if exitErr.ExitCode() == 128 {
                                // Git returns exit code 128 when trying to 
delete a non-existing config section.
                                // This is not an error condition in this 
workflow so we can ignore it here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/config/version.go 
new/git-town-24.1.1/internal/config/version.go
--- old/git-town-24.1.0/internal/config/version.go      2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/config/version.go      2026-11-06 
13:28:50.000000000 +0100
@@ -1,4 +1,4 @@
 package config
 
 // GitTownVersion provides the current Git Town version.
-const GitTownVersion = "24.1.0"
+const GitTownVersion = "24.1.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/gohacks/error_collector.go 
new/git-town-24.1.1/internal/gohacks/error_collector.go
--- old/git-town-24.1.0/internal/gohacks/error_collector.go     2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/gohacks/error_collector.go     2026-11-06 
13:28:50.000000000 +0100
@@ -9,7 +9,7 @@
 // Use with care and only if it's abundantly clear and obvious that there are 
no negative side effects.
 // This is an anti-pattern in code to work arount an anti-pattern in the 
language.
 type ErrorCollector struct {
-       Err error `exhaustruct:"optional"`
+       Err error //exhaustruct:optional
 }
 
 // Check registers the given error and indicates
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/state/runstate/runstate.go 
new/git-town-24.1.1/internal/state/runstate/runstate.go
--- old/git-town-24.1.0/internal/state/runstate/runstate.go     2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/state/runstate/runstate.go     2026-11-06 
13:28:50.000000000 +0100
@@ -18,7 +18,7 @@
 // including which operations are left to do,
 // and how to undo what has been done so far.
 type RunState struct {
-       AbortProgram             program.Program                            
`exhaustruct:"optional"` // opcodes to abort the currently pending Git operation
+       AbortProgram             program.Program                            
//exhaustruct:optional — opcodes to abort the currently pending Git operation
        BeginBranchesSnapshot    gitdomain.BranchesSnapshot                 // 
snapshot of the Git branches before the Git Town command that this RunState is 
for ran
        BeginConfigSnapshot      configdomain.BeginConfigSnapshot           // 
snapshot of the Git configuration before the Git Town command that this 
RunState is for ran
        BeginStashSize           gitdomain.StashSize                        // 
size of the Git stash before the Git Town command that this RunState is for ran
@@ -28,12 +28,12 @@
        EndBranchesSnapshot      Option[gitdomain.BranchesSnapshot]         // 
snapshot of the Git branches after the Git Town command that this RunState is 
for ran
        EndConfigSnapshot        Option[configdomain.EndConfigSnapshot]     // 
snapshot of the Git configuration after the Git Town command that this RunState 
is for ran
        EndStashSize             Option[gitdomain.StashSize]                // 
size of the Git stash after the Git Town command that this RunState is for ran
-       FinalUndoProgram         program.Program                            
`exhaustruct:"optional"` // additional opcodes to run after this RunState was 
undone
+       FinalUndoProgram         program.Program                            
//exhaustruct:optional — additional opcodes to run after this RunState was 
undone
        RunProgram               program.Program                            // 
remaining opcodes of the Git Town command that this RunState is for
        TouchedBranches          gitdomain.BranchNames                      // 
the branches that are touched by the Git Town command that this RunState is for
        UndoAPIProgram           program.Program                            // 
opcodes to undo changes at external systems
-       UndoablePerennialCommits []gitdomain.SHA                            
`exhaustruct:"optional"` // contains the SHAs of commits on perennial branches 
that can safely be undone
-       UnfinishedDetails        OptionalMutable[UnfinishedRunStateDetails] 
`exhaustruct:"optional"`
+       UndoablePerennialCommits []gitdomain.SHA                            
//exhaustruct:optional — contains the SHAs of commits on perennial branches 
that can safely be undone
+       UnfinishedDetails        OptionalMutable[UnfinishedRunStateDetails] 
//exhaustruct:optional
 }
 
 func EmptyRunState() RunState {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/internal/test/datatable/data_table.go 
new/git-town-24.1.1/internal/test/datatable/data_table.go
--- old/git-town-24.1.0/internal/test/datatable/data_table.go   2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/test/datatable/data_table.go   2026-11-06 
13:28:50.000000000 +0100
@@ -16,7 +16,7 @@
 // The zero value is an empty DataTable.
 type DataTable struct {
        // table data organized as rows and columns
-       Cells [][]string `exhaustruct:"optional"`
+       Cells [][]string //exhaustruct:optional
 }
 
 // FromGherkin provides a DataTable instance populated with data from the 
given Gherkin table.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/internal/test/subshell/test_runner.go 
new/git-town-24.1.1/internal/test/subshell/test_runner.go
--- old/git-town-24.1.0/internal/test/subshell/test_runner.go   2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/test/subshell/test_runner.go   2026-11-06 
13:28:50.000000000 +0100
@@ -254,8 +254,7 @@
        }
        exitCode := 0
        if err != nil {
-               var exitErr *exec.ExitError
-               if errors.As(err, &exitErr) {
+               if exitErr, ok := errors.AsType[*exec.ExitError](err); ok {
                        exitCode = exitErr.ExitCode()
                        err = nil
                } else {
@@ -318,17 +317,17 @@
 type Options struct {
        // Dir contains the directory in which to execute the command.
        // If empty, runs in the current directory.
-       Dir string `exhaustruct:"optional"`
+       Dir string //exhaustruct:optional
 
        // Env allows to override the environment variables to use in the 
subshell, in the format provided by os.Environ()
        // If empty, uses the environment variables of this process.
-       Env []string `exhaustruct:"optional"`
+       Env []string //exhaustruct:optional
 
        // when set, captures the output and returns it
-       IgnoreOutput bool `exhaustruct:"optional"`
+       IgnoreOutput bool //exhaustruct:optional
 
        // input to pipe into STDIN
-       Input Option[string] `exhaustruct:"optional"`
+       Input Option[string] //exhaustruct:optional
 
        // whether to provide a TTY to the subshell
        TTY bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/test/testgit/commit.go 
new/git-town-24.1.1/internal/test/testgit/commit.go
--- old/git-town-24.1.0/internal/test/testgit/commit.go 2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/test/testgit/commit.go 2026-11-06 
13:28:50.000000000 +0100
@@ -10,13 +10,13 @@
 
 // Commit describes a Git commit.
 type Commit struct {
-       Author      gitdomain.Author `exhaustruct:"optional"`
+       Author      gitdomain.Author //exhaustruct:optional
        Branch      gitdomain.LocalBranchName
-       FileContent string    `exhaustruct:"optional"`
-       FileName    string    `exhaustruct:"optional"`
-       Locations   Locations `exhaustruct:"optional"`
+       FileContent string    //exhaustruct:optional
+       FileName    string    //exhaustruct:optional
+       Locations   Locations //exhaustruct:optional
        Message     gitdomain.CommitMessage
-       SHA         gitdomain.SHA `exhaustruct:"optional"`
+       SHA         gitdomain.SHA //exhaustruct:optional
 }
 
 var counter helpers.AtomicCounter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/internal/vm/program/program.go 
new/git-town-24.1.1/internal/vm/program/program.go
--- old/git-town-24.1.0/internal/vm/program/program.go  2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/internal/vm/program/program.go  2026-11-06 
13:28:50.000000000 +0100
@@ -13,7 +13,7 @@
 )
 
 // Program is a mutable collection of Opcodes.
-type Program []shared.Opcode
+type Program []shared.Opcode //nolint: recvcheck // MarshalJSON and 
UnmarshalJSON require different receiver types
 
 // Append adds the given opcode to the end of this program.
 func (self *Program) Add(opcode ...shared.Opcode) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/run-that-app 
new/git-town-24.1.1/run-that-app
--- old/git-town-24.1.0/run-that-app    2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/run-that-app    2026-11-06 13:28:50.000000000 +0100
@@ -2,30 +2,30 @@
 
 actionlint 1.7.12
 alphavet 0.1.0
-conc 0.6.1
+conc 0.10.2
 contest 0.5.0
 cucumber-sort 0.2.0
-deadcode 0.48.0
+deadcode 0.52.0
 depth 1.2.1
-dprint 0.55.2
-exhaustruct 3.3.1
+dprint 0.64.3
+exhaustruct 5.2.0
 ghokin 3.10.0
-gofumpt 0.10.0
-golangci-lint 2.12.2
+gofumpt 0.12.0
+golangci-lint 2.15.0
 goreleaser 1.26.2
 govulncheck 1.1.4
 ireturn 0.4.1
-keep-sorted 0.9.1
-lefthook 2.1.10
-mdbook 0.4.51
+keep-sorted 0.10.0
+lefthook 2.2.2
+mdbook 0.4.52
 mdbook-linkcheck 0.7.7
-node 26.5.0
-npm 26.5.0
-npx 26.5.0
+node 26.12.1
+npm 26.12.1
+npx 26.12.1
 ripgrep 15.2.0
-rumdl 0.2.40
-scc 3.7.0
+rumdl 0.3.0
+scc 4.1.0
 shellcheck system@* 0.11.0
-shfmt 3.13.1
-staticcheck 2026.1
+shfmt 3.14.1
+staticcheck 2026.2.2
 taplo 0.10.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/collector_addf/Makefile 
new/git-town-24.1.1/tools/collector_addf/Makefile
--- old/git-town-24.1.0/tools/collector_addf/Makefile   2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/collector_addf/Makefile   2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 
 RTA = ../rta@$(RTA_VERSION)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/format_cmp_or/Makefile 
new/git-town-24.1.1/tools/format_cmp_or/Makefile
--- old/git-town-24.1.0/tools/format_cmp_or/Makefile    2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/format_cmp_or/Makefile    2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/format_self/Makefile 
new/git-town-24.1.1/tools/format_self/Makefile
--- old/git-town-24.1.0/tools/format_self/Makefile      2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/format_self/Makefile      2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/format_unittests/Makefile 
new/git-town-24.1.1/tools/format_unittests/Makefile
--- old/git-town-24.1.0/tools/format_unittests/Makefile 2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/format_unittests/Makefile 2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/generate_json_schema/Makefile 
new/git-town-24.1.1/tools/generate_json_schema/Makefile
--- old/git-town-24.1.0/tools/generate_json_schema/Makefile     2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/generate_json_schema/Makefile     2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/generate_json_schema/go.mod 
new/git-town-24.1.1/tools/generate_json_schema/go.mod
--- old/git-town-24.1.0/tools/generate_json_schema/go.mod       2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/generate_json_schema/go.mod       2026-11-06 
13:28:50.000000000 +0100
@@ -3,7 +3,7 @@
 go 1.26.1
 
 require (
-       github.com/git-town/git-town/v24 v24.1.0
+       github.com/git-town/git-town/v24 v24.1.1
        github.com/invopop/jsonschema v0.13.0
        github.com/shoenig/test v1.12.2
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/iterate_map/Makefile 
new/git-town-24.1.1/tools/iterate_map/Makefile
--- old/git-town-24.1.0/tools/iterate_map/Makefile      2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/iterate_map/Makefile      2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/tools/lint_cached_connectors/Makefile 
new/git-town-24.1.1/tools/lint_cached_connectors/Makefile
--- old/git-town-24.1.0/tools/lint_cached_connectors/Makefile   2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/lint_cached_connectors/Makefile   2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/lint_steps/Makefile 
new/git-town-24.1.1/tools/lint_steps/Makefile
--- old/git-town-24.1.0/tools/lint_steps/Makefile       2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/lint_steps/Makefile       2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/tools/mdbook_preprocessor/mdbook_preprocessor.js 
new/git-town-24.1.1/tools/mdbook_preprocessor/mdbook_preprocessor.js
--- old/git-town-24.1.0/tools/mdbook_preprocessor/mdbook_preprocessor.js        
2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/mdbook_preprocessor/mdbook_preprocessor.js        
2026-11-06 13:28:50.000000000 +0100
@@ -160,7 +160,7 @@
         }</div>`
       })
       .join("")
-  }</pre></code>`
+  }</code></pre>`
 }
 
 /**
@@ -217,5 +217,5 @@
         }</div>`
       })
       .join("")
-  }</pre></code>`
+  }</code></pre>`
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/messages_sorted/Makefile 
new/git-town-24.1.1/tools/messages_sorted/Makefile
--- old/git-town-24.1.0/tools/messages_sorted/Makefile  2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/messages_sorted/Makefile  2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/messy_output/Makefile 
new/git-town-24.1.1/tools/messy_output/Makefile
--- old/git-town-24.1.0/tools/messy_output/Makefile     2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/messy_output/Makefile     2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/messy_output/main.go 
new/git-town-24.1.1/tools/messy_output/main.go
--- old/git-town-24.1.0/tools/messy_output/main.go      2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/messy_output/main.go      2026-11-06 
13:28:50.000000000 +0100
@@ -29,8 +29,8 @@
                }
                feature := ReadGherkinFile(path)
                scenarios := FindScenarios(feature, dialogStepRegex)
-               for _, error := range AnalyzeScenarios(path, scenarios) {
-                       fmt.Println(error)
+               for _, err2 := range AnalyzeScenarios(path, scenarios) {
+                       fmt.Println(err2)
                        errors += 1
                }
                return nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/optioncompare/Makefile 
new/git-town-24.1.1/tools/optioncompare/Makefile
--- old/git-town-24.1.0/tools/optioncompare/Makefile    2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/optioncompare/Makefile    2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/tools/optioncompare_in_tests/Makefile 
new/git-town-24.1.1/tools/optioncompare_in_tests/Makefile
--- old/git-town-24.1.0/tools/optioncompare_in_tests/Makefile   2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/optioncompare_in_tests/Makefile   2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/tools/print_config_exhaustive/Makefile 
new/git-town-24.1.1/tools/print_config_exhaustive/Makefile
--- old/git-town-24.1.0/tools/print_config_exhaustive/Makefile  2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/print_config_exhaustive/Makefile  2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/stats_release/Makefile 
new/git-town-24.1.1/tools/stats_release/Makefile
--- old/git-town-24.1.0/tools/stats_release/Makefile    2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/stats_release/Makefile    2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/structs_sorted/Makefile 
new/git-town-24.1.1/tools/structs_sorted/Makefile
--- old/git-town-24.1.0/tools/structs_sorted/Makefile   2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/structs_sorted/Makefile   2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/sync_rta_version/Makefile 
new/git-town-24.1.1/tools/sync_rta_version/Makefile
--- old/git-town-24.1.0/tools/sync_rta_version/Makefile 2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/sync_rta_version/Makefile 2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/tests_sorted/Makefile 
new/git-town-24.1.1/tools/tests_sorted/Makefile
--- old/git-town-24.1.0/tools/tests_sorted/Makefile     2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/tests_sorted/Makefile     2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/tools/use_equal/Makefile 
new/git-town-24.1.1/tools/use_equal/Makefile
--- old/git-town-24.1.0/tools/use_equal/Makefile        2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/tools/use_equal/Makefile        2026-11-06 
13:28:50.000000000 +0100
@@ -1,6 +1,6 @@
 .DEFAULT_GOAL := help
 
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 RTA = ../rta@$(RTA_VERSION)
 
 fix:  # runs all linters and auto-fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/vendor/modules.txt 
new/git-town-24.1.1/vendor/modules.txt
--- old/git-town-24.1.0/vendor/modules.txt      2026-09-26 15:40:51.000000000 
+0200
+++ new/git-town-24.1.1/vendor/modules.txt      2026-11-06 13:28:50.000000000 
+0100
@@ -95,8 +95,8 @@
 # github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f
 ## explicit; go 1.16
 github.com/erikgeiser/coninput
-# github.com/git-town/git-town/v24 v24.1.0 => .
-## explicit; go 1.26.1
+# github.com/git-town/git-town/v24 v24.1.1 => .
+## explicit; go 1.26.9
 # github.com/go-fed/httpsig v1.1.0
 ## explicit; go 1.13
 github.com/go-fed/httpsig
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/website/Makefile 
new/git-town-24.1.1/website/Makefile
--- old/git-town-24.1.0/website/Makefile        2026-09-26 15:40:51.000000000 
+0200
+++ new/git-town-24.1.1/website/Makefile        2026-11-06 13:28:50.000000000 
+0100
@@ -1,4 +1,4 @@
-RTA_VERSION = 0.40.0  # run-that-app version to use
+RTA_VERSION = 0.40.0
 
 .DEFAULT_GOAL := help
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/website/src/commands/propose.md 
new/git-town-24.1.1/website/src/commands/propose.md
--- old/git-town-24.1.0/website/src/commands/propose.md 2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/website/src/commands/propose.md 2026-11-06 
13:28:50.000000000 +0100
@@ -24,7 +24,8 @@
 - [GitHub](https://github.com)
 - [GitLab](https://gitlab.com)
 
-You can configure the browser which Git Town opens using the
+You can configure the browser
+which Git Town opens using the
 [BROWSER environment variable](../preferences/browser.md).
 
 ## Options
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/website/src/commands/repo.md 
new/git-town-24.1.1/website/src/commands/repo.md
--- old/git-town-24.1.0/website/src/commands/repo.md    2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/website/src/commands/repo.md    2026-11-06 
13:28:50.000000000 +0100
@@ -12,12 +12,14 @@
 [GitLab](https://gitlab.com), [Gitea](https://gitea.com),
 [Bitbucket](https://bitbucket.org), and [Forgejo](https://forgejo.org).
 
-You can configure the browser which Git Town opens using the
+You can configure the browser
+which Git Town opens using the
 [BROWSER environment variable](../preferences/browser.md).
 
 ## Positional arguments
 
-When called without arguments, the _repo_ command shows the repository at the
+When called without arguments,
+the _repo_ command shows the repository at the
 [development remote](../preferences/dev-remote.md).
 
 When called with an argument,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/website/src/install.md 
new/git-town-24.1.1/website/src/install.md
--- old/git-town-24.1.0/website/src/install.md  2026-09-26 15:40:51.000000000 
+0200
+++ new/git-town-24.1.1/website/src/install.md  2026-11-06 13:28:50.000000000 
+0100
@@ -125,7 +125,7 @@
 [tools]
 "github:git-town/git-town" = "latest"
 # or a specific version
-"github:git-town/git-town" = "24.1.0"
+"github:git-town/git-town" = "24.1.1"
 ```
 
 ## Manual installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/website/src/install.sh 
new/git-town-24.1.1/website/src/install.sh
--- old/git-town-24.1.0/website/src/install.sh  2026-09-26 15:40:51.000000000 
+0200
+++ new/git-town-24.1.1/website/src/install.sh  2026-11-06 13:28:50.000000000 
+0100
@@ -3,7 +3,7 @@
 
 # This script installs the Git Town executable in the user's HOME directory.
 
-VERSION=24.1.0             # the version of Git Town to install
+VERSION=24.1.1             # the version of Git Town to install
 DEST=$HOME/.local/bin      # the folder into which to install the Git Town 
executable
 TMP_DIR=.git-town-download # temporary folder to use
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-town-24.1.0/website/src/introduction.md 
new/git-town-24.1.1/website/src/introduction.md
--- old/git-town-24.1.0/website/src/introduction.md     2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/website/src/introduction.md     2026-11-06 
13:28:50.000000000 +0100
@@ -34,8 +34,8 @@
 [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow),
 [Git 
Flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow),
 [GitLab Flow](https://docs.gitlab.com/ee/topics/gitlab_flow.html),
-[trunk-based development](https://trunkbaseddevelopment.com)
-and even committing straight into the main branch.
+[trunk-based development](https://trunkbaseddevelopment.com) and even 
committing
+straight into the main branch.
 Git Town has special support for mono-repos and stacked changes.
 See also this
 [external 
review](https://www.softpedia.com/get/Programming/Other-Programming-Files/Git-Town.shtml).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/website/src/preferences/bitbucket-api-token.md 
new/git-town-24.1.1/website/src/preferences/bitbucket-api-token.md
--- old/git-town-24.1.0/website/src/preferences/bitbucket-api-token.md  
2026-09-26 15:40:51.000000000 +0200
+++ new/git-town-24.1.1/website/src/preferences/bitbucket-api-token.md  
2026-11-06 13:28:50.000000000 +0100
@@ -14,8 +14,8 @@
 that external applications can interact with Bitbucket in your name.
 To create an API token, open the
 [security settings of your Atlassian 
account](https://id.atlassian.com/manage-profile/security/api-tokens),
-click `Create API token with scopes`, choose `Bitbucket` as the app,
-and select these scopes:
+click `Create API token with scopes`, choose `Bitbucket` as the app, and select
+these scopes:
 
 - `read:user:bitbucket`
 - `read:repository:bitbucket`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/git-town-24.1.0/website/src/preferences/gitlab-token.md 
new/git-town-24.1.1/website/src/preferences/gitlab-token.md
--- old/git-town-24.1.0/website/src/preferences/gitlab-token.md 2026-09-26 
15:40:51.000000000 +0200
+++ new/git-town-24.1.1/website/src/preferences/gitlab-token.md 2026-11-06 
13:28:50.000000000 +0100
@@ -7,8 +7,8 @@
 [personal access 
token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)
 with `api` scope.
 You can create one in your account settings.
-[account settings](https://gitlab.com/-/user_settings/personal_access_tokens)
-or get one created for you by using the
+[account settings](https://gitlab.com/-/user_settings/personal_access_tokens) 
or
+get one created for you by using the
 [api connector type for GitLab](gitlab-connector.md).
 
 ## config file

++++++ git-town.obsinfo ++++++
--- /var/tmp/diff_new_pack.6v3fVY/_old  2026-11-06 20:07:22.718883810 +0100
+++ /var/tmp/diff_new_pack.6v3fVY/_new  2026-11-06 20:07:22.729884271 +0100
@@ -1,5 +1,5 @@
 name: git-town
-version: 24.1.0
-mtime: 1790430051
-commit: 2fabf99bfd18f6ddc4e80e23f970df4ce3de9ff5
+version: 24.1.1
+mtime: 1793968130
+commit: e66ec8b8b744bbe2ad5416dc4793e16b56a3e629
 

Reply via email to