Feature: Apply sparse-checkout at session worktree creation to avoid full-checkout timeouts on large repos
- Lenguaje dominante
- Shell
- Estrellas
- 11.2k
- Forks
- 1.9k
- Merge medio
- 14 h 16 min
- PR fusionados (30 d)
- 6
Descripción
### Describe the feature or problem you'd like to solve
Apply sparse-checkout at session worktree creation to avoid full-checkout timeouts on large repos
### Proposed solution
## Summary
When the app creates a new project session, it runs `git worktree add`, which
checks out the **entire** working tree. For very large monorepos this checkout
is slow enough to **time out**, so sessions fail to start.
New worktrees do **not** inherit sparse-checkout config from the main repo, and
hooks (e.g. `PreToolUse`) only fire *after* the worktree exists — so there is
currently no way to avoid the full checkout from the user side.
## Problem
- Repo: very large local repo (working tree in the multi-GB / high-file-count range)
- `git worktree add ` materializes the full tree
- Worktree creation times out → session cannot be created
- No pre-worktree hook / config exists to scope the checkout
## Proposal
Add a config option to scope the checkout when creating session worktrees, e.g.:
```jsonc
// settings.json
{
"session": {
"worktree": {
"sparseCheckout": {
"enabled": true,
"cone": true,
"paths": ["src/app", "libs/shared"]
}
}
}
}
```
### Example prompts or workflows
_No response_
### Additional context
Prior art / related
#2399 — sparse-checkout for plugin installs
#2463 — sparse-checkout for marketplace clones
Both apply sparse-checkout to reduce clone cost, but only for plugins/marketplace,
not for session worktrees. This request covers the session-creation path.
Environment
Copilot CLI version: 1.0.71-2
OS: Windows
Repo: local-only, very large working tree
Guía de contribución
Línea de trabajo
Empieza por la ruta de creación del worktree de sesión y la invocación de `git worktree add`, y determina después cómo se puede aplicar la configuración antes del checkout. El trabajo está terminado cuando un worktree de sesión puede usar la configuración propuesta de sparse-checkout, de modo que los repositorios grandes eviten materializar el árbol completo y agotar el tiempo de espera.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- git
- Área
- cli
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100