Sessions worktree
Une session worktree s’exécute dans sa propre copie extraite de votre dépôt, sur sa propre branche (un git worktree). Les sessions parallèles ne se marchent donc pas sur les fichiers — l’une peut refactorer pendant qu’une autre corrige un bug, sans allers-retours constants.
En créer une
- Ouvrez la boîte de dialogue nouveau worktree : choisissez Nouveau worktree… dans le menu des branches au-dessus du champ de saisie quand vous démarrez une session, ou utilisez le bouton worktree sur la ligne d’un projet dans la barre latérale.
- Sous Start from, choisissez une option :
- new branch — nommez la branche
- existing branch — récupérez une branche que vous avez déjà
- PR or issue — choisissez-en un depuis GitHub, GitLab, Gitea, Forgejo, Gerrit, Linear ou une extension ; la branche prend son nom (une PR récupère sa propre branche, un changement Gerrit son dernier patchset sur
change-<number>) et l’élément est joint à votre premier message
- Vérifiez Based on (la branche de départ d’une nouvelle branche, par défaut la branche par défaut du dépôt distant, par exemple
origin/main) et Folder name ; ne les modifiez que si nécessaire. - Créez-le. Si le projet a des commandes de configuration, elles s’exécutent juste après.
OpenChamber crée la branche, prépare le dossier et y ouvre une nouvelle session, prête pour votre premier message. Vous pouvez aussi en lancer une directement depuis une todo ou une issue ou pull request.
Pour éviter les questions, choisissez Worktree rapide dans le même menu : OpenChamber donne à la branche un nom provisoire et y place la nouvelle session. Une fois que l’agent a nommé la tâche, il renomme aussi la branche d’après elle, par exemple fix/login-timeout, tant que la branche n’a pas encore été poussée.
Créer des worktrees avec votre propre outil
Chaque nouveau worktree est un checkout tout neuf, et un gros projet peut donc passer plusieurs minutes à installer ses dépendances avant que quoi que ce soit ne tourne. Un outil copy-on-write crée plutôt le worktree comme un clone d’un checkout que vous avez déjà : node_modules, .venv et les fichiers de build suivent, sans prendre de place en plus sur le disque tant qu’ils ne changent pas.
Pour en utiliser un, ouvrez les réglages du projet, allez dans Worktrees et saisissez la commande de votre outil sous Création des worktrees. OpenChamber crée d’abord la branche, puis lance la commande à la racine du projet avec deux variables d’environnement :
$WORKTREE_PATHest le dossier où créer le worktree. Il n’existe pas encore.$WORKTREE_BRANCHest la branche à récupérer à cet endroit. Elle existe déjà.
Cette commande fait ce que fait OpenChamber quand aucune n’est définie ; mettez la commande de votre outil à la place de git worktree add :
git worktree add "$WORKTREE_PATH" "$WORKTREE_BRANCH"Le worktree apparaît ensuite dans la barre latérale comme les autres, et les commandes de configuration du projet s’y exécutent. Si l’outil range le checkout ailleurs et laisse un lien à $WORKTREE_PATH, OpenChamber travaille dans le vrai dossier. Si la commande échoue, OpenChamber affiche sa sortie et supprime la branche qu’il a créée. Supprimer le worktree plus tard fonctionne même si l’outil l’a verrouillé.
La commande ne concerne que vous : elle n’est pas enregistrée dans le dépôt, donc les collègues qui n’ont pas l’outil gardent la création habituelle. Laissez le champ vide pour revenir à git. Les worktrees d’une pull request venant du fork de quelqu’un d’autre utilisent toujours git.
Dans la barre latérale
Un worktree occupe une ligne dans la barre latérale, avec toutes ses sessions dessous. Sous son projet, il est classé parmi les autres sessions du projet selon sa dernière activité : un worktree où vous venez de travailler se trouve donc près du haut. La ligne affiche le nom de la tâche dès que l’agent l’a nommée (avant cela, le titre de la dernière session où vous y avez travaillé), la pull request ou l’issue qu’il suit sous forme de marque colorée, et si une session y tourne ou a du nouveau pour vous. Un worktree créé pour une pull request ou une issue porte d’abord le titre de cet élément, jusqu’à ce que l’agent choisisse un nom plus court. Survolez-la pour voir la branche. Cliquez dessus pour ouvrir la dernière session où vous y avez travaillé ; pour déplier la liste, survolez l’icône de branche à sa gauche et cliquez sur la flèche qui prend sa place. Son menu renomme la tâche, range le worktree dans un dossier du projet, l’archive ou le supprime. Sur le téléphone, touchez la flèche de la ligne pour déplier la liste, et faites glisser la ligne sur le côté pour la marquer comme terminée, renommer la tâche, archiver le worktree ou le supprimer. Voir Sessions en cours pour savoir comment les travaux entrent dans le bloc En cours et en sortent.
Projets ouverts sur un dossier du dépôt
Si vous ouvrez un projet sur un dossier à l’intérieur d’un dépôt, comme repo/ai, les nouveaux worktrees s’ouvrent aussi à cet endroit. Une session dans un nouveau worktree démarre dans le même dossier du checkout, et OpenCode trouve ainsi la configuration qui s’y trouve. Un projet ouvert à la racine du dépôt démarre à la racine du worktree, comme avant. Si une branche n’a pas ce dossier, la session démarre à la racine du worktree et OpenChamber vous le signale.
Ramener le travail
Quand le travail est bon, utilisez Integrate dans la vue Git pour ramener les commits du worktree sur une autre branche (comme main). Si un changement entre en conflit, vous pouvez confier la résolution du conflit à l’agent.
Nettoyer
Quand la tâche est finie, choisissez Archiver le worktree dans le menu de la ligne, ou maintenez Maj et cliquez sur le bouton d’archivage qui remplace le bouton de nouvelle session sur la ligne. OpenChamber l’archive : le dossier disparaît, et ses sessions, ses changements non commités et sa branche attendent sur la page Archives. Si une session y tourne encore, le worktree reste.
Marquer la ligne comme terminée la retire seulement du bloc En cours. Pour archiver un worktree chaque fois que vous le marquez comme terminé, ou une fois sa PR fusionnée, activez-le dans Paramètres → Sessions → Worktrees terminés.
Sur la page Archives, les worktrees archivés sont rangés sous leur projet. Restaurer en ramène un avec sa branche, lance les commandes de configuration du projet et remet ses changements et ses sessions en place ; restaurer une de ses sessions fait la même chose. Les fichiers que git ignore, comme node_modules ou .env, ne sont pas conservés, et ce sont les commandes de configuration qui les recréent. La page Worktrees du projet liste aussi les worktrees archivés.
Pour vous débarrasser d’un worktree pour de bon, supprimez-le depuis son menu, ou supprimez un worktree archivé depuis la page Archives. Quand vous supprimez depuis le menu, vous choisissez aussi si la branche doit être supprimée — locale, et distante s’il y en a une.
Si quelque chose semble étrange
Un worktree peut demander votre attention si son dossier a disparu, si sa branche est détachée, ou si un merge ou rebase est à moitié terminé. OpenChamber signale ces cas pour que vous puissiez les corriger — voir Worktrees et Git.
Pages liées
- Multi-run — lancer plusieurs sessions worktree à la fois
- Workflows Git — commiter et intégrer depuis OpenChamber