Feature: Apply sparse-checkout at session worktree creation to avoid full-checkout timeouts on large repos
Personne n'a encore pris cette issue.
- Langage dominant
- Shell
- Étoiles
- 11.2k
- Forks
- 1.9k
- Merge moyen
- 14 h 16 min
- PR mergées (30 j)
- 6
Description
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 <path> <branch>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.:
// 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
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le chemin de création du worktree de session et l’invocation de git worktree add, puis déterminez comment la configuration peut être appliquée avant le checkout. Le travail est terminé lorsqu’un worktree de session peut utiliser les paramètres sparse-checkout proposés, afin que les grands dépôts n’aient pas à matérialiser l’arborescence complète et n’expirent pas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- git
- Domaine
- cli
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100