vibe worktree の path をカスタマイズする
vibe は git worktree の作成・移動をシンプルにしてくれる CLI ツールです。
vibe start <branch> を実行すると新しい worktree が作られますが、デフォルトのパス命名規則が合わない場合、.vibe.toml の path_script でカスタマイズできます。
デフォルトのパス
.vibe.toml に何も設定しない場合、worktree は以下のパスに作成されます。
<リポジトリの親ディレクトリ>/<リポジトリ名>-<ブランチ名>
例えば ~/projects/myapp というリポジトリで vibe start feature-foo を実行すると:
~/projects/myapp-feature-foo
シンプルですが、複数リポジトリを扱っていると ~/projects/ 直下に <repo>-<branch> のディレクトリが大量に並ぶことになります。
path_script でパスをカスタマイズする
.vibe.toml の [worktree] セクションで path_script を指定すると、worktree パスの生成をシェルスクリプトに委譲できます。
# .vibe.toml
[worktree]
path_script = "./.vibe-path.sh"
./.vibe-path.sh は stdout に worktree のパスを出力するスクリプトです。相対パスはリポジトリルートを起点に解決されます。実行権限を付けておく必要があります。
利用できる環境変数
スクリプト内では vibe が設定する以下の環境変数を使えます:
| 変数名 | 内容 | 例 |
|---|---|---|
VIBE_REPO_ROOT |
リポジトリルートの絶対パス | ~/projects/myapp |
VIBE_REPO_NAME |
リポジトリ名 | myapp |
VIBE_BRANCH_NAME |
ブランチ名(生の値) | feat/new-feature |
VIBE_SANITIZED_BRANCH |
パスに使える形に変換したブランチ名(/ → -) |
feat-new-feature |
設定例
設定例:専用ディレクトリにまとめる
リポジトリごとに worktree 置き場を用意する構成です。
#!/bin/bash
# .vibe-path.sh
echo "${VIBE_REPO_ROOT}/../myapp-wt/${VIBE_SANITIZED_BRANCH}"
vibe start feature-foo を実行すると:
~/projects/myapp-wt/feature-foo
~/projects/myapp-wt/ 以下に worktree が集まるので、メインリポジトリと worktree を明確に分離できます。
確認方法
--dry-run オプションで実際に worktree を作らずにパスを確認できます:
vibe start feature-foo --dry-run
# => [dry-run] Worktree path: ~/projects/myapp-wt/feature-foo
path_script を使うと worktree のパス生成を自由に制御できます。複数リポジトリを扱う場合や worktree の置き場を整理したい場合に試してみてください。