Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://docs.devin.ai/llms.txt

Use this file to discover all available pages before exploring further.

Devin Desktop permet d’utiliser des worktrees Git pour exécuter des tâches Cascade en parallèle sans perturber votre espace de travail principal. Avec les worktrees, chaque conversation Cascade dispose de sa propre session, ce qui permet à Cascade d’apporter des modifications, d’effectuer un build et de tester le code sans perturber votre espace de travail principal.

Utilisation de base des worktrees

Le moyen le plus simple de commencer à utiliser les worktrees est de passer en mode « Worktree » dans le coin inférieur droit du champ de saisie de Cascade.
Actuellement, vous ne pouvez passer à un worktree qu’au début d’une session Cascade. Les conversations ne peuvent pas être déplacées vers un autre worktree une fois qu’elles ont commencé.
Une fois que Cascade a apporté des modifications aux fichiers dans le worktree, vous pouvez cliquer sur « merge » pour réintégrer ces modifications dans votre espace de travail principal.

Emplacement

Les worktrees sont organisés par nom de dépôt dans ~/.windsurf/worktrees/<repo_name>. Chaque worktree reçoit un nom aléatoire unique. Pour afficher la liste des worktrees actifs, vous pouvez exécuter git worktree list depuis le répertoire du dépôt.
Comme les worktrees se trouvent dans un répertoire différent de celui de votre projet d’origine, les systèmes de build ou les outils qui reposent sur des chemins relatifs (p. ex. des références ../shared-lib, des dépendances liées par lien symbolique ou des dépendances source de monorepo résolues via un chemin) peuvent ne pas fonctionner dans un worktree. Si votre projet utilise des chemins relatifs en dehors de la racine du dépôt, configurez un hook post_setup_worktree pour créer les liens symboliques nécessaires ou copier les fichiers requis aux emplacements attendus.

Hook de configuration initiale

Chaque worktree contient une copie des fichiers de votre dépôt, mais n’inclut pas les fichiers .env ni les autres packages qui ne sont pas versionnés. Si vous souhaitez inclure des fichiers ou des packages supplémentaires dans chaque worktree, vous pouvez utiliser le hook post_setup_worktree pour les copier dans le répertoire du worktree. Le hook post_setup_worktree s’exécute une fois chaque worktree créé et configuré. Il est exécuté dans le nouveau répertoire worktree. La variable d’environnement $ROOT_WORKSPACE_PATH pointe vers le chemin de l’espace de travail d’origine et peut être utilisée pour accéder à des fichiers ou exécuter des commandes par rapport au dépôt d’origine.

Exemple

Copiez les fichiers d’environnement et installez les dépendances lorsqu’un nouveau worktree est créé. Configuration (dans .windsurf/hooks.json) :
{
  "hooks": {
    "post_setup_worktree": [
      {
        "command": "bash $ROOT_WORKSPACE_PATH/hooks/setup_worktree.sh",
        "show_output": true
      }
    ]
  }
}
Script (hooks/setup_worktree.sh) :
#!/bin/bash

# Copier les fichiers d'environnement depuis le workspace d'origine
if [ -f "$ROOT_WORKSPACE_PATH/.env" ]; then
    cp "$ROOT_WORKSPACE_PATH/.env" .env
    echo "Copied .env file"
fi

if [ -f "$ROOT_WORKSPACE_PATH/.env.local" ]; then
    cp "$ROOT_WORKSPACE_PATH/.env.local" .env.local
    echo "Copied .env.local file"
fi

# Installer les dépendances
if [ -f "package.json" ]; then
    npm install
    echo "Installed npm dependencies"
fi

exit 0
Ce hook garantit que chaque worktree dispose automatiquement de la configuration d’environnement nécessaire et des dépendances requises.

Nettoyage

Devin Desktop nettoie automatiquement les anciens worktrees lors de la création d’un nouveau worktree afin d’éviter une occupation excessive de l’espace disque. Chaque espace de travail peut contenir jusqu’à 20 worktrees. Les worktrees sont nettoyés en fonction de leur dernière utilisation : les plus anciens sont supprimés en premier. Ce nettoyage s’effectue pour chaque espace de travail, ce qui garantit que les worktrees de différents dépôts restent indépendants les uns des autres. De plus, si vous supprimez manuellement une conversation Cascade, Devin Desktop supprimera automatiquement le worktree associé.

Panneau de gestion du code source

Par défaut, Devin Desktop n’affiche pas les worktrees créés par Cascade dans le panneau SCM. Vous pouvez définir git.showWindsurfWorktrees sur true dans vos Settings pour passer outre ce comportement et activer l’affichage des worktrees dans le panneau SCM.