3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

vibe worktree の path をカスタマイズする

vibe は git worktree の作成・移動をシンプルにしてくれる CLI ツールです。

vibe start <branch> を実行すると新しい worktree が作られますが、デフォルトのパス命名規則が合わない場合、.vibe.tomlpath_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.shstdout に 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 の置き場を整理したい場合に試してみてください。

参考

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?