コンテンツにスキップ

.vibe.toml

.vibe.tomlファイルには、通常gitにコミットされてチームで共有される設定が含まれます。

元リポジトリからWorktreeへ個別のファイルをコピー:

[copy]
files = [".env", "config.json"]

files配列はglobパターンに対応しており、柔軟なファイル選択が可能です:

[copy]
files = [
"*.env", # ルートディレクトリの全.envファイル
"**/*.json", # 全JSONファイル(再帰的)
"config/*.txt", # config/内の全.txtファイル
".env.production" # 厳密なパスも引き続き利用可能
]

サポートされるパターン:

パターン説明
*/以外の任意の文字にマッチ
**/を含む任意の文字にマッチ(再帰的)
?任意の1文字にマッチ
[abc]ブラケット内の任意の文字にマッチ

ディレクトリ全体を再帰的にコピー:

[copy]
dirs = [
"node_modules", # 厳密なディレクトリパス
".cache", # 隠しディレクトリ
"packages/*" # 複数ディレクトリにマッチするGlobパターン
]

ディレクトリコピーの並列実行数を制御できます:

[copy]
concurrency = 8
  • デフォルト: 4
  • 範囲: 1 から 32
  • 高速なストレージ(NVMe、SSD)を持つシステムでは値を大きくするとコピーが高速化する場合があります
  • 値を小さくするとシステムリソースの使用量が減少します

環境変数によるオーバーライド:

Terminal window
VIBE_COPY_CONCURRENCY=16 vibe start feat/my-feature

環境変数は設定ファイルの値より優先されます。

コピーパフォーマンスの最適化 v0.4.0+

Section titled “コピーパフォーマンスの最適化 ”

vibeはシステムに応じて最適なコピー戦略を自動選択します:

戦略使用条件プラットフォーム
Clone (CoW)APFSでのディレクトリコピーmacOS
Clone (reflink)Btrfs/XFSでのディレクトリコピーLinux
rsynccloneが利用できない場合のディレクトリコピーmacOS/Linux
Standardファイルコピー、またはフォールバック全て

仕組み:

  • ファイルコピー: 単一ファイルの最高パフォーマンスのため、常にネイティブのcopyFile()を使用
  • ディレクトリコピー: 利用可能な最速の方法を自動使用

メリット:

  • Copy-on-Writeは実際のデータではなくメタデータのみをコピーするため非常に高速
  • 設定不要 - 最適な戦略が自動検出されます
  • 自動フォールバックによりコピーは常に動作します

フック設定の詳細はフックを参照してください。

外部スクリプトを使用してWorktreeディレクトリパスをカスタマイズできます。

Worktreeパスを出力するスクリプトを指定:

[worktree]
path_script = "~/.config/vibe/worktree-path.sh"

スクリプトは以下の環境変数を受け取ります:

環境変数説明
VIBE_REPO_NAMEリポジトリ名my-project
VIBE_BRANCH_NAMEブランチ名feat/new-feature
VIBE_SANITIZED_BRANCHサニタイズ済みブランチ名(/-feat-new-feature
VIBE_REPO_ROOTリポジトリルートパス/path/to/repo

スクリプト例:

~/.config/vibe/worktree-path.sh
#!/bin/bash
echo "${HOME}/worktrees/${VIBE_REPO_NAME}-${VIBE_SANITIZED_BRANCH}"
[copy]
files = [
".env",
".env.local",
"**/*.secret"
]
dirs = [
"node_modules",
".cache",
"vendor"
]
concurrency = 8
[hooks]
pre_start = ["echo 'Worktreeを準備中...'"]
post_start = [
"pnpm install",
"pnpm db:migrate",
"pnpm build"
]
pre_clean = ["git stash"]
post_clean = ["echo 'クリーンアップ完了'"]
[worktree]
path_script = "~/.config/vibe/worktree-path.sh"