Workspaces, windows and Git identities

Set up one window per client or project, each with its own colour along the top edge and its own name, email and signing key for commits. When this is done, a repository you open lands in the right window on its own, and a commit with the wrong email gets caught before it happens.

Updated 10 November 2026

How workspaces work

A workspace is a named group of repositories with a colour, an optional Git identity, and rules that say which repositories belong to it. Each workspace opens in its own window. When you open a repository, Mergepond checks the rules of every workspace in order and puts the repository in the first one that matches; the sheet puts it this way: "Repos join the first workspace whose rule they match."

Mergepond Free includes three workspaces. Pro removes the limit.

Create a workspace

  1. Choose Repository › Workspaces and Identities…, or press ⌘K and type "workspaces". The sheet lists your workspaces with their colour, rule summary and identity.
  2. Click "Add workspace" and name it, say "Acme".
  3. Pick a colour from the eight swatches. The sheet notes it is "Shown as the edge along the top of the window", and it also tints the app's accent in that window, so a glance at any window tells you which client you are in.
  4. Add a rule. The kinds are Folder (~/work/acme/**), Remote URL (github.com/acme/*), SSH host (dev-box) and Repo tag (client-work). Globs use * and **. Add as many rules as you like; any one matching is enough.
  5. Leave Identity on "None, use Git's settings" for now, and click "Add workspace".
The workspaces sheet: a colour, a rule and an identity per workspace.

Open a repository under ~/work/acme and it appears in the Acme window with the Acme colour. If a repository matches no rule, pin it: the workspace form has a "Pinned repos" list with a "Pin" button for the repository you have open.

Add a Git identity

An identity is the name, email and signing setup a commit carries. Keeping one per client means a work email never ends up in a personal project's history, and the other way round.

  1. In the same sheet, click "Add identity".
  2. Give it a label (Work), then the Name and Email that should appear on commits.
  3. If you sign commits, enter the Signing key as a key ID or an SSH public key, and set Format to GPG or SSH. Otherwise leave "Don't sign".
  4. Optionally set an "SSH key for pushing and pulling", such as ~/.ssh/id_ed25519_acme. Leave it empty to use your SSH config.
  5. Save, then open the Acme workspace and set its Identity to Work. One identity can serve several workspaces.

Nothing is written into a repository yet. Setting an identity on a workspace tells Mergepond what to expect; the next section is where it starts checking.

Let Mergepond check before each commit

Before each commit, Mergepond compares the identity the repository will commit as with what its workspace expects. In the Changes view the commit box always shows "Committing as" with the name and email, so you can see it at a glance. If they differ, a notice appears above the commit button saying what the workspace commits as, with a "Use Work" button that fixes it, and if you press ⌘⏎ anyway, a dialog asks "Commit with the expected identity?" with "Commit anyway" or "Use Work".

To fix it once and for all for a repository, open Repository settings from the gear in the sidebar's header, or Repository › Repository Settings…:

  • "Follow Acme: Work" keeps the repository on whatever identity the workspace has.
  • "Always Work" pins it, regardless of workspace.

The sheet explains the effect: "Picking one writes the name, email and signing key into this repo's Git config." It is a plain git config write in that repository, so other tools see the same name and email. A toast confirms "Commits here now use Work" followed by the email.

Get more from it

  • Tags are the loose end for repositories that live anywhere. Add a tag like client-work in Repository settings (type it and press ⏎), then give the workspace a Repo tag rule. The repository follows the tag wherever its folder goes.
  • Switching workspace from the palette, "Switch to the Acme workspace", opens or focuses that workspace's window rather than changing the current one, so you never lose your place.
  • A remote host makes a good workspace. One SSH host rule, one colour, and every repository on that machine is visibly on that machine.
  • A single identity for a client with three repositories is better than three repo-level configs: change the email once in the sheet and every repository that follows the workspace changes with it.