ワークツリー:同じリポジトリの別のチェックアウト
リンクされたワークツリーを使うと、開いているチェックアウトを変えずに、別のフォルダーで別のブランチを扱えます。1つのリポジトリ内でタスクやエージェントの試行を並行して進める際に使います。
FluxGitはサブモジュール、ワークツリー、親子リポジトリの関係を表示します。複数のリポジトリから成るワークスペースでも、未コミットの変更や親が記録するコミットとの不一致を見逃しにくくなります。
リンクされたワークツリーを使うと、開いているチェックアウトを変えずに、別のフォルダーで別のブランチを扱えます。1つのリポジトリ内でタスクやエージェントの試行を並行して進める際に使います。
サブモジュールには独自の履歴があります。親リポジトリは使用するサブモジュールのコミットを記録するため、別のプロジェクトを組み込みながら、その参照を更新する時点を選べます。
それぞれ異なる問題を解決します。ワークツリーは1つのリポジトリに複数の作業フォルダーを用意し、サブモジュールは2つのリポジトリをつなぎます。FluxGitは、リンクされたワークツリーと親子間のサブモジュールの状態を同じワークスペースビューに表示します。コーディングエージェントを並行して使うための安全なワークツリー手順に加え、GitのワークツリーとGitのサブモジュールのドキュメントで、基になるGitの動作を確認できます。
ワークツリーとサブモジュールは併用できますが、各チェックアウトを個別に確認してください。Git は複数のワークツリーにまたがるサブモジュールのサポートが不完全であると明記し、スーパープロジェクトの複数チェックアウトを推奨していません。この構成を使う前に制限を確認してください。
参照を変更する前に、この3つのコミットを比較します。一致していても、子の作業フォルダーに未コミットの変更がないとは限りません。FluxGit は親子の状態と参照のずれを表示します。Agent Lanes は変更を適用せずに並行した試行を比較します。
サブモジュールは親が記録するコミットからずれることがあり、ワークツリーではブランチが複数のフォルダーに分かれます。その状態が見えなければ、意図しないサブモジュールのコミットを指す親リポジトリをコミットしてしまいます。
サブモジュールとワークツリーのワークフローはベータ版です。保留中の状態をワークスペースごとに表示し、サブモジュールやワークツリーの破壊的な操作も、他の操作と同じ確認付きの手順を通ります。
クローン時はサブモジュールを標準で初期化し、関連する子または親リポジトリを開けます。Fleet Radarから、親が記録するコミットとずれたサブモジュールの参照先を親に記録するか、サブモジュールを記録済みのコミットに戻せます。どの入れ子階層でも対応します。
デスクトップのバックエンドが必要なワークツリー操作には、案内と実行条件が設けられています。同じタスクの並行した試行がリンクされたワークツリーにあれば、横に並べて比較し、採用した試行を確認付きの手順でマージできます。
並行して進めたエージェントの試行を、ファイルごとに横に並べて比較できます。複数の試行が変更したファイルを先に表示し、各セルからその試行の差分を開けます。比較画面から変更が適用されることはありません。
サブモジュールやワークツリーの破壊的な操作は、実行前に確認を求めます。
Agent Lanesは、並行した各試行を列に、各ファイルを行に配置し、使用中のチェックアウトと比較します。各セルから試行の差分を確認し、採用した試行を確認付きの手順でマージできます。
サブモジュールのチェックアウトが、親の記録したコミットからずれた場合、Fleet Radarでは2つの操作を選べます。1つは、参照先だけを含むコミットで新しい参照先を親に記録する操作です。もう1つは、復元ポイントを保持してサブモジュールを記録済みのコミットに戻す操作です。ただし、そのチェックアウトによって、どのブランチ、タグ、リモートにも含まれないコミットが取り残される場合は実行を拒否します。どちらも入れ子のサブモジュールに対応します。
ワークスペースの調査はローカルを基本とします。FluxGitはローカルの構造を読み取り、外部には送信しません。
サイドバーにサブモジュールのパス、コミット、未コミットの変更の有無を表示します。