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 supporta l’uso dei worktree Git per eseguire attività Cascade in parallelo senza interferire con il workspace principale.
Quando si usano i worktree, ogni conversazione di Cascade ha la propria sessione, consentendo a Cascade di apportare modifiche oppure di eseguire build e test del codice senza interferire con il workspace principale.
Utilizzo di base dei worktree
Il modo più semplice per iniziare a usare i worktree è passare alla modalità “Worktree” nell’angolo in basso a destra del campo di input di Cascade.
Al momento, puoi passare a un worktree solo all’inizio di una sessione di Cascade. Una volta avviata, una conversazione non può essere spostata in un worktree diverso.
Dopo che Cascade ha apportato modifiche ai file nel worktree, puoi fare clic su “merge” per integrare tali modifiche nel workspace principale.
I worktree sono organizzati in base al nome della repo all’interno di ~/.windsurf/worktrees/<repo_name>.
A ogni worktree viene assegnato un nome casuale univoco.
Per visualizzare un elenco dei worktree attivi, puoi eseguire git worktree list dalla directory del repository.
Poiché i worktree si trovano in una directory diversa da quella del progetto originale, i sistemi di build o gli strumenti che si basano su percorsi relativi (ad es. riferimenti ../shared-lib, dipendenze collegate tramite symlink o dipendenze sorgente di monorepo risolte tramite percorso) potrebbero non funzionare all’interno di un worktree. Se il tuo progetto usa percorsi relativi al di fuori della directory radice del repository, configura un hook post_setup_worktree per creare i symlink necessari o copiare i file richiesti nelle posizioni previste.
Ogni worktree contiene una copia dei file del tuo repository, ma non include i file .env o altri pacchetti non sottoposti a controllo di versione.
Se vuoi includere file o pacchetti aggiuntivi in ogni worktree, puoi usare l’hook post_setup_worktree per copiarli nella directory del worktree.
L’hook post_setup_worktree viene eseguito dopo la creazione e la configurazione di ogni worktree. Viene eseguito all’interno della nuova directory worktree.
La variabile d’ambiente $ROOT_WORKSPACE_PATH punta al percorso del workspace originale e può essere usata per accedere ai file o eseguire comandi rispetto al repository originale.
Copia i file dell’ambiente e installa le dipendenze quando viene creato un nuovo worktree.
Config (in .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
# Copia i file environment dal workspace originale
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
# Installa le dependencies
if [ -f "package.json" ]; then
npm install
echo "Installed npm dependencies"
fi
exit 0
Questo hook garantisce che ogni worktree disponga automaticamente della configurazione dell’ambiente necessaria e delle dipendenze richieste.
Devin Desktop pulisce automaticamente i worktree meno recenti quando crea un nuovo worktree, per evitare un utilizzo eccessivo del disco. Ogni workspace può avere fino a 20 worktree.
I worktree vengono rimossi in base al momento dell’ultimo accesso: i più vecchi vengono eliminati per primi. Questa pulizia avviene a livello di singolo workspace, garantendo che i worktree di repository diversi rimangano indipendenti tra loro.
Inoltre, se elimini manualmente una conversazione Cascade, Devin Desktop eliminerà automaticamente il worktree associato.
Pannello di controllo del codice sorgente
Per impostazione predefinita, Devin Desktop non mostra i worktrees creati da Cascade nel pannello SCM.
Puoi impostare git.showWindsurfWorktrees su true in Settings per fare override di questo comportamento e abilitare la visualizzazione dei worktrees nel pannello SCM.