メインコンテンツへスキップ

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は、メインのワークスペースに干渉することなくCascadeタスクを並列で実行できるよう、git worktreeの使用をサポートしています。 ワークツリーを使用すると、各Cascade conversationに専用のセッションが割り当てられるため、Cascadeはメインのワークスペースに干渉することなく、編集やコードのbuild、テストを行えます。

ワークツリーの基本的な使い方

ワークツリーを使い始める最も簡単な方法は、Cascade の入力欄の右下にある「Worktree」モードに切り替えることです。
現在、ワークツリーに切り替えられるのは Cascade セッションの開始時のみです。開始した会話を別のワークツリーに移すことはできません。
Cascade がワークツリー内のファイルに変更を加えたら、「merge」をクリックして、その変更をメインのワークスペースに取り込めます。

場所

ワークツリーは、~/.windsurf/worktrees/<repo_name> 配下でリポジトリ名ごとに整理されます。 各ワークツリーには、ランダムな一意の名前が付けられます。 アクティブなワークツリーの一覧を確認するには、リポジトリのディレクトリ内で git worktree list を実行できます。
ワークツリーは元のプロジェクトとは別のディレクトリに配置されるため、相対パスに依存するビルドシステムやツール (たとえば ../shared-lib への参照、シンボリックリンクされた依存関係、またはパスで解決されるモノレポのソース依存関係) は、ワークツリー内では正常に動作しない場合があります。プロジェクトでリポジトリルートの外側を指す相対パスを利用している場合は、必要なシンボリックリンクを作成するか、必要なファイルを想定された場所にコピーするように post_setup_worktree フック を設定してください。

セットアップフック

各ワークツリーにはリポジトリのファイル一式が含まれますが、.env ファイルや、バージョン管理されていないその他のパッケージは含まれません。 各ワークツリーに追加のファイルやパッケージを含めたい場合は、post_setup_worktree フック を利用して、それらをワークツリーのディレクトリにコピーできます。 post_setup_worktree フックは、各ワークツリーの作成と設定が完了した後に実行されます。実行場所は、新しい ワークツリー ディレクトリ内です。 $ROOT_WORKSPACE_PATH 環境変数は元のワークスペースのパスを指しており、元のリポジトリを基準にファイルへアクセスしたり、コマンドを実行したりする際に利用できます。

新しいワークツリーが作成されたときに、環境ファイルをコピーして依存関係をインストールします。 設定 (.windsurf/hooks.json 内) :
{
  "hooks": {
    "post_setup_worktree": [
      {
        "command": "bash $ROOT_WORKSPACE_PATH/hooks/setup_worktree.sh",
        "show_output": true
      }
    ]
  }
}
スクリプト (hooks/setup_worktree.sh):
#!/bin/bash

# 元のworkspaceからenvironmentファイルをコピーする
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

# dependenciesをインストールする
if [ -f "package.json" ]; then
    npm install
    echo "Installed npm dependencies"
fi

exit 0
このフックにより、各ワークツリーで必要な環境設定が行われ、依存関係が自動的にインストールされます。

クリーンアップ

Devin Desktop は、ディスク使用量が過剰になるのを防ぐため、新しい ワークツリー を作成する際に古い ワークツリー を自動的にクリーンアップします。各ワークスペースでは、最大 20 個の ワークツリー を保持できます。 ワークツリー は最後にアクセスされた日時に基づいてクリーンアップされ、最も古いものから順に削除されます。このクリーンアップはワークスペースごとに行われるため、異なるリポジトリの ワークツリー は互いに独立した状態に保たれます。 また、Cascade の会話を手動で削除すると、Devin Desktop は関連する ワークツリー も自動的に削除します。

ソース管理パネル

デフォルトでは、Devin Desktop は Cascade によって作成されたワークツリーを SCM パネルに表示しません。 この動作を変更して SCM パネルにワークツリーを表示するには、設定で git.showWindsurfWorktreestrue に設定します。