Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt

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

Devin Desktop permite usar git worktrees para ejecutar tareas de Cascade en paralelo sin interferir con tu espacio de trabajo principal. Al usar worktrees, cada conversación de Cascade tiene su propia sesión, lo que permite que Cascade realice ediciones o compile y pruebe código sin interferir con tu espacio de trabajo principal.

Uso básico de los worktrees

La forma más sencilla de empezar a usar worktrees es cambiar al modo “Worktree” en la esquina inferior derecha del campo de entrada de Cascade.
Actualmente, solo puedes cambiar a un worktree al inicio de una sesión de Cascade. Las conversaciones no se pueden mover a un worktree distinto una vez iniciadas.
Después de que Cascade realice cambios en archivos dentro del worktree, puedes hacer clic en “merge” para incorporar esos cambios de nuevo a tu espacio de trabajo principal.

Ubicación

Los worktrees se organizan por nombre de repo dentro de ~/.windsurf/worktrees/<repo_name>. A cada worktree se le asigna un nombre aleatorio único. Para ver una lista de worktrees activos, puedes ejecutar git worktree list desde el directorio del repositorio.
Como los worktrees están en un directorio distinto del de tu proyecto original, los sistemas de compilación o las herramientas que dependen de rutas relativas (p. ej., referencias a ../shared-lib, dependencias con enlaces simbólicos o dependencias de código fuente de un monorepo resueltas por ruta) pueden fallar dentro de un worktree. Si tu proyecto usa rutas relativas fuera de la raíz del repositorio, configura un hook post_setup_worktree para crear los enlaces simbólicos necesarios o copiar los archivos necesarios a las ubicaciones esperadas.

Hook de configuración

Cada worktree contiene una copia de los archivos de tu repositorio, pero no incluye archivos .env ni otros paquetes que no estén bajo control de versiones. Si quieres incluir archivos o paquetes adicionales en cada worktree, puedes usar el hook post_setup_worktree para copiarlos al directorio del worktree. El hook post_setup_worktree se ejecuta después de que cada worktree se crea y se configura. Se ejecuta dentro del nuevo directorio worktree. La variable de entorno $ROOT_WORKSPACE_PATH apunta a la ruta original del espacio de trabajo y puede usarse para acceder a archivos o ejecutar comandos con respecto al repositorio original.

Ejemplo

Copia los archivos de Environment e instala las dependencias cuando se cree un nuevo worktree. Configuración (en .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

# Copiar archivos de environment del workspace original
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

# Instalar dependencies
if [ -f "package.json" ]; then
    npm install
    echo "Installed npm dependencies"
fi

exit 0
Este hook garantiza que cada worktree tenga la Configuración de Environment necesaria y que las dependencias se instalen automáticamente.

Limpieza

Devin Desktop limpia automáticamente los worktrees más antiguos al crear un worktree nuevo para evitar un uso excesivo de disco. Cada espacio de trabajo puede tener hasta 20 worktrees. Los worktrees se limpian en función de la última vez que se accedió a ellos: primero se eliminan los más antiguos. Esta limpieza se realiza para cada espacio de trabajo, lo que garantiza que los worktrees de distintos repositorios sigan siendo independientes entre sí. Además, si eliminas manualmente una conversación de Cascade, Devin Desktop eliminará automáticamente el worktree asociado.

Panel de control de código fuente

De forma predeterminada, Devin Desktop no muestra los worktrees creados por Cascade en el panel de SCM. Puedes establecer git.showWindsurfWorktrees en true en tu Settings para anular este comportamiento y habilitar la visualización de los worktrees en el panel de SCM.