Workspace
A workspace is an independent folder that contains a copy of your project. Rover creates a separate workspace for each task, making it possible to run multiple tasks in parallel without interference. Each coding agent will apply changes only in its workspace.
To create it, Rover uses the git worktree feature.
What’s a git worktree?
Section titled “What’s a git worktree?”A git worktree is a separate checkout of your repository, sharing the same .git folder. Imagine it as having multiple copies of your local repository, each in its own folder and a different branch, but all connected to the same git history.
Workspace structure
Section titled “Workspace structure”When you create a new task, Rover creates a new worktree in the global store at ~/.rover/data/projects/<project-id>/workspaces/<task-id>/. This workspace starts from the branch you specify when creating the task (defaulting to the current branch). The coding agent will then apply changes directly in this workspace.
Directory~/.rover/data/projects/<project-id>/
Directorytasks/
Directory1/
- …
Directory2/
- …
- …
Directoryworkspaces/
Directory1/ Git worktree for task 1
- README.md
Directorysrc/
- …
- …
Directory2/ Git worktree for task 2
- …
- …
Directorylogs/
- …
Deleting a workspace
Section titled “Deleting a workspace”When you delete a task using rover delete <task-id>, Rover will also remove the associated workspace, cleaning up the worktree and all its files.
If you delete the workspace folder manually from the global store, you will need to prune the git worktree references using:
git worktree prune