github / github/copilot-cli

Feature: Apply sparse-checkout at session worktree creation to avoid full-checkout timeouts on large repos

Ouverte
#4,145 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

area:configuration area:sessions
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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. 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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.