Skip to content

GitWorkbench 1.3.0

Latest

Choose a tag to compare

@gpambrozio gpambrozio released this 14 Jun 00:11
697a269

What's new in 1.3.0

All remote branches in the rail. The REMOTES section now lists every remote-tracking branch, grouped under its remote, instead of only the current branch's upstream:

  • Branches show without the remote prefix (develop, feat/auto-sync — not origin/develop), grouped under each remote, so multiple remotes are supported (not just a hardcoded origin).
  • The branch your current branch tracks is shown bold + accent-colored.
  • Single-click a remote branch to view its history; double-click to check it out locally as a tracking branch (or switch to an existing local branch of the same name).

The section is hidden entirely when there are no remote-tracking branches, and the remote-name sub-headers are non-interactive labels (no hover or tap affordance).

Provider changes

GitWorkbenchProvider gains two methods, mirroring the existing loadBranches() / switchBranch(to:) pair:

func loadRemoteBranches() async throws -> [RemoteBranch]
func checkoutRemoteBranch(_ branch: RemoteBranch) async throws

A new RemoteBranch value (Sendable, Hashable, Identifiable) carries the full ref as its id (origin/feat/auto-sync, unique across remotes), the remote name, and the prefix-stripped name for display.

The bundled MockGitProvider and GitWorkbenchGitKit's CLIGitProvider both implement the new methods. CLIGitProvider reads remotes via git for-each-ref … refs/remotes and checks out with git switch --track.

Upgrading from 1.2.0

These two methods are required (no default implementations). If your host implements GitWorkbenchProvider itself, add loadRemoteBranches() and checkoutRemoteBranch(_:) to your conformance — return [] from the former (the REMOTES section then stays hidden) if you don't want remote-branch support. Hosts using the bundled providers need no changes. No existing method signatures or state shapes changed.

Requirements

  • macOS 15+
  • Swift 6 (language mode v6)

Installation

.package(url: "https://github.com/gpambrozio/GitWorkbench.git", from: "1.3.0"),