Projects and repositories

A repository is one git repository, on this Mac or on a server. Its tasks run in worktrees of their own, so the repository’s main folder stays as you left it.

A project is a set of repositories you put together, for example a client’s app, API and website, or just the one repository of a small tool. The repositories may sit on different machines, and a project may be empty. One repository can be in several projects; a task remembers its project and shows only there.

The project switcher

The switcher at the top of the sidebar shows one project, or All Projects. Switch with ⌃1 to ⌃9 for the first nine projects; ⌃0 shows All Projects. A dot on the switcher marks that something is waiting in another project; in its menu, the projects with waiting work say how much in brackets.

Below the switcher, the sidebar shows the shown project only: All Tasks and, if it has more than one repository, one row per repository with just its tasks. A repository on a server says on build, and on build · not reachable in red when the server can’t be reached. Tasks of an unreachable server stand under Problems.

The switcher’s menu holds the rest: New Project…, and for the shown project Add Repository…, Project Settings…, Rename…, moving it up or down, a divider and Delete Project…. Dividers become sections of the menu. Order sorts the projects By Name or Manually. Drag a session outside a task onto the switcher, and Cavvy asks which project it goes to; drag it onto a repository, and it goes to the shown project.

Adding repositories

New Project… (⇧⌘N) starts with a first repository, or with No Repository Yet. Add Repository… adds more. Both offer Existing Folder, Clone from an address, or Start Empty, on this Mac or on a server.

Choose a folder full of repositories, and Cavvy lists them; the ones you check join the project one by one. Repositories that turn up in the folder later don’t join by themselves.

The one exception is an agent: in a task, it may take in any repository it needs. A repository that wasn’t in the project yet joins it at once, marked new, with a notification and an entry in the history. Nothing joins unnoticed.

Project Info and the repository page

Project Info (⌘I) has three tabs: Overview with the project’s repositories, History (the last seven days) and Settings. The settings say how tasks run: the branch prefix, the default agent, Plan first and Pull the base from origin first. Under Finishing Tasks they say how tasks end: merge or merge request, push and clean-up.

Click a repository in Project Info, or press ⌘I while the list shows a repository, for its own page: Setup, Done Means, the Second Opinion, its main branch and recent commits, sessions in its main folder and deleted tasks. These belong to the repository, so they are the same in every project it is in.

All Projects and “Since you last looked”

All Projects shows every task in one list. With no task selected, the right column shows Since you last looked: what happened in each project while you were away. See Control room.

Servers

Servers are in Settings → Servers. In the sidebar they only appear at their repositories, with their state. See Servers.