Verdent Docs
高度な機能

ワークスペースの分離

Verdent が git worktree で並行するコード変更を分離する仕組み

ワークスペースの分離は、git worktree を使って、並行するコード変更をファイルシステムレベルで分離します。ワークスペースには、それぞれ独自のディレクトリ、ブランチのチェックアウト、ファイル、ステージング状態があります。

現在の Verdent Desktop インターフェースでは、手動でのワークスペース作成は提供されていません。New Workspace ボタン、キーボードショートカット、Duplicate to New Workspace は非表示です。レスポンスを複製すると、新しいタスクは現在のワークスペース内に作成されます。


学べること

  • ワークスペースの分離が競合を防ぐ仕組み
  • git worktree が分離を実現する仕組み
  • Base Workspace とワークスペースの違い
  • 既存のワークスペースと Verdent が管理するワークスペースがインターフェースにどう表示されるか
  • ワークスペース管理のベストプラクティス

ワークスペースの分離とは

Verdent が別々のワークスペースで作業を実行すると、ある worktree の変更は、別の worktree のファイルやステージング状態を変更しません。これにより、並行した実装とレビューをより安全に行えます。

仕組み

レイヤー仕組み
ディレクトリ各ワークスペースは分離されたディレクトリです
ブランチ各ワークスペースには独自のブランチチェックアウトがあります
ファイルあるワークスペースでのファイル変更は、他のワークスペースに影響しません
ステージング各ワークスペースには独自のステージング領域があります

メリット

干渉なし

ファイル変更は別々の worktree ディレクトリ内に留まります

安全な実験

安定したコードに影響を与えずにリスクのある変更を試せます

明確な比較

git diff を使って、ワークスペース間でアプローチを比較できます

選択的なリベース

信頼できる結果だけをリベースできます


Base Workspace とワークスペース

Base Workspace

Base ワークスペースは元のリポジトリチェックアウトで、デフォルトの開始地点として機能します。

特性説明
場所元の git clone または init の場所
主ブランチ通常は main または開発ブランチ
参照点実験的な作業を比較するための基準

Base を使う場面:

  • 分離が不要な素早い変更
  • 実験的な作業を比較するための参照点
  • 変更を直接 main ブランチに入れたい場合
  • 並行実行が不要な単純なタスク

ワークスペース

ワークスペースは、git worktree を使って作成される分離された作業環境で、独立したブランチチェックアウトとファイル状態を持ちます。

Verdent は、対応しているワークフローでコード変更の分離が必要な場合にワークスペースを使用できます。既存のワークスペースはプロジェクトとの関連付けを維持し、複数のタスクを含められます。


既存のワークスペースを扱う

すでにプロジェクトに属しているワークスペースは、Projects パネルでそのプロジェクトにグループ化されたまま表示されます。ワークスペースを選択すると、そのタスクとファイル状態を確認できます。

  • 同じワークスペース内のタスクはファイルを共有しますが、会話コンテキストは別々に保持されます。
  • 別のワークスペースに切り替えると、アクティブな worktree とブランチのコンテキストが変わります。
  • レスポンスを複製すると、複製されたタスクは現在のワークスペース内に残ります。
  • 必要な作業をコミット、リベース、または別の方法で保存してから、ワークスペースを削除してください。

ワークスペースの変更をリベースする

ワークスペースでの変更を main ブランチに統合する準備ができたら、次の手順を実行します。

Verdent UI を使う

作業を完了する

ワークスペースで作業を完了します

変更を確認する

中央のパネルで Task Changes を選択し、すべての変更を確認します

main ブランチにリベースする

Workspace Bar で Workspace Actions → Rebase to main branch を選択します

競合を解決する

プロンプトが表示された場合は競合を解決します

検証する

確定する前に変更を確認します

ワークスペースを最新に保つ

Workspace Actions → Sync with main branch を使って、main ブランチの最新変更をワークスペースに取り込みます。これにより、リベース時に大きな競合が発生しにくくなります。


ベストプラクティス

ワークスペースのメンテナンス

実践理由
リベース済みのワークスペースを削除するディスク容量を解放できます
放棄した実験を削除するワークスペース一覧を管理しやすく保てます
ワークスペース数を適切に保つシステムリソースには限りがあります

Git の衛生管理

実践理由
こまめにコミットする切り替える前に作業中の内容をコミットします
小さくコミットする小さなコミットのほうが cherry-pick しやすくなります
定期的に base と同期するワークスペースが main ブランチから大きく乖離しないようにします
競合の複雑さを抑える定期的な統合により、大きな競合を防げます

FAQ

各ワークスペースはどのくらいのディスク容量を使いますか

各ワークスペースは作業ファイルを複製しますが、.git ディレクトリは共有します。使用容量は、おおよそワークスペースごとのプロジェクトサイズと同じです。大規模なプロジェクトで多数のワークスペースを並行して使うと、多くのディスク容量を使用します。

ワークスペースを削除できますか

はい。Verdent からワークスペースを削除します。これによりディレクトリは削除されますが、ブランチ上のコミット済みの作業は保持されます。

新しいワークスペースを作成するにはどうすればよいですか

現在の Desktop インターフェースでは、手動作成は利用できません。New Workspace の項目とショートカットは非表示です。Verdent は、対応している分離ワークフローのために内部的にワークスペースを引き続き使用できます。

ワークスペースを削除すると未コミットの変更はどうなりますか

ワークスペースを削除すると、未コミットの変更は失われます。ワークスペースを削除する前に、必ず変更をコミットまたは stash してください。

ワークスペースを base ワークスペースに変換できますか

直接変換することはできませんが、ワークスペースのすべての変更を main ブランチにリベースしてから、ワークスペースを削除できます。ブランチ履歴は保持されます。

worktree はすべての git ホスティングサービスで使えますか

はい。Git の worktree は標準の git 機能です。GitHub、GitLab、Bitbucket、その他の git ホスティングサービスで使用できます。