Skip to content

Support configurable worktree paths per project #1435

Description

@hnaganur

Feature summary

Allow custom worktree location and naming per project

What problem are you trying to solve?

Today, worktrees are created in a fixed structure like:

repo_clone_path/
└── copilot-worktrees/
    └── repo_clone_name/
        └── random-worktree-name

For some projects, especially large C++ codebases, this can create very long filesystem paths. Those long paths can cause build or compilation issues or make the worktree harder to use in environments with strict path-length limits.

Proposed solution

Allow users to customize the worktree location and naming structure on a per-project basis.

Possible improvements:

  • Let users set a custom base worktree directory
  • Let users customize the worktree folder structure
  • Prefer shorter or more predictable generated worktree names
  • Optionally support random-name generation patterns that keep paths compact

Workflow impact

This would improve reliability for projects that are sensitive to path length, especially C++ and other build-heavy repositories. It would also make worktrees easier to manage for users who need a more compact or organization-specific directory layout.

Installation context

Project-level worktree setup in the GitHub App

Additional context

Current structure:

repo_clone_path/
└── copilot-worktrees/
    └── repo_clone_name/
        └── random-worktree-name

A customizable structure would help avoid long path issues and make worktrees more accessible in constrained environments.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions