2026 年の貸出 Mac mini:並列 iOS/macOS 開発における Git ワークツリー、ブランチごとクローン、専用ミニプールの比較
VmMac から Apple Silicon Mac mini を借りるチームは、しばしば ハイパーバイザの心の模型 を持ち込む——「このブランチ用にもう 1 VM」。ベアメタル macOS は Type‑2 ハイパーバイザのようにプロセス名前空間をフォークできないため、並列レーンは ファイルシステムと Git トポロジー で作る。本稿は git ワークツリー、ブランチごとの別クローン、専用 mini のプール の三方式を比較し、ディスク・CI 重なり・リリース周期の目安を 香港・日本・韓国・シンガポール・米国 の VmMac リージョンで整理する。
ブランチ方針を固定する前に DerivedData 並列 QA レーン、チームプールのハンドオフとリセット、使い捨て QA ラボ SSH と VNC を読む。ノードは 料金 から選び、ヘルプ で SSH の運用感を確認する。
「VM スナップショット」が存在しない理由と代替
ハイパーバイザならスナップショット巻き戻しは一瞬;物理 Apple Silicon では DerivedData 消去、署名 ID の入れ替え、SwiftPM キャッシュ再構築に 数分 かかる。勝つ比喩は 別パスの並行世界:複数の作業ツリーまたはクローンと分離ビルドルートであり、一発で巻き戻す黄金ディスク像ではない。
- ワークツリーは 1 つの
.gitオブジェクトストアを共有——ブランチ切替が速く、ディスクが小さく、fetch 履歴が共通。 - 別クローンはオブジェクトを複製——NVMe コストは高いが、フックや LFS フィルタが大きく違うと隔離に有利。
- 専用複数 miniはマシン全体を複製——高価だが人間 QA と自動化の分離が最強。
戦略マトリクス:ワークツリー vs クローン vs 専用 mini プール
アーキレビューで隔離とコストを議論する表——列は次の数値モデルと意図的に異なる。
| 次元 | Git ワークツリー | ブランチごとクローン | 専用 mini プール | VmMac メモ |
|---|---|---|---|---|
| Git オブジェクト共有 | 単一 DB | reference clone 無しなら重複 | ホストごとに独立 | fetch ミラーと RTT を揃える |
| サブモジュール自由度 | 共有 pin が衝突しうる | 独立 .git/modules |
完全分離 | レーンごとに凍結方針を文書化 |
| Xcode UI 同時実行 | 典型的に 1–2 本 | ディスク次第で 2–3 | 1 人 1 ホスト理想 | UI テストが重なるならホスト追加 |
| CI の破壊的 clean | 兄弟ワークツリーにリスク | git clean -xfd を隔離 |
爆発半径が安全 | HK ピーク外に clean を |
| 証明書・署名 | 単一ログインキーチェーン | アカウント分離無しなら同じ | macOS ユーザ分割可 | 輸出規制の地理に合わせる |
同時実行とディスクコストモデル(計画数値)
2 枚目は形が違う——調達前に財務とプラットフォームが合意する用。
| シナリオ | 並列レーン | NVMe 予算 | エスカレーション |
|---|---|---|---|
| 機能ブランチ、SwiftUI プレビュー off | ワークツリー 2 + CI シャード | 70–120 GB 作業セット | UITest 動画キャプチャ on |
| リリース + ホットフィックス | クローン 2 + 慎重 clean | 90–150 GB | 並列アーカイブ各 > 12 GB |
| 大規模 SPM のモノレポ | mini あたり 1 レーン | ホスト 160+ GB | 3 アプリ横断の索引ビルド |
| 24/7 無人 CI | ヘッドレス 3 シャード | 空き 25 GB で薄いディスク警告 | CPU 85% 超が 45 分継続 |
xcodebuild を 3 本と SwiftUI Canvas デーモンを 2 本走らせると熱制限でテストが不安定に見える——架空のレースを追う前にレーンを分ける。
VmMac Mac mini での Git ワークツリー導入 9 ステップ
- ディレクトリ名前空間:
~/src/<repo>-wt/<branch-slug>を作り、CI ユーザ向けに POSIX ACL を緩めすぎない範囲で設定。 - ワークツリー追加:
git worktree addでパス明示;Xcode 最近使った項目を混乱させるネスト初期値を避ける。 - DerivedData 固定:scheme か非本番ブランチの xcconfig で
-derivedDataPathをレーンごとに。 - シミュレータルート:
SIMULATOR_HOST_HOMEかユーザデフォルトで CoreSimulator 状態を横断させない。 - フック衛生:無関係ワークツリーを消すグローバル post-checkout は無効化——
$GIT_DIRでスコープ。 - CI オーケストレーション:同一クローン共有時は破壊コマンドをファイルロックで直列化。
- テレメトリ:CI ログとクラッシュにレーン ID を付け Organizer フィルタを信頼できるように。
- ローテーション:週次で古いワークツリーを剪定し漂うビルド成果物を残さない。
- リージョン整合:JP/SG でも同じレイアウトをミラーし、遅延調査でパスが揃うように。
2 台目の貸出 mini が必須になる条件
人間 QA が画面収録 を要する一方で CI がユニファイドメモリを食う、コード署名方針が共有ログインセッションを禁じる、ネット出口を消費者版とエンタープライズ版で分離 すべき法的要請——これらは単一ホスト戦略から出る。VmMac の多リージョンで負荷レーンをユーザー近くに置きつつ、統合は Git に近い場所に置ける。
よくある質問
16 GB RAM の Mac mini M4 1 台に、git ワークツリーはいくつ入るか? インタラクティブな Xcode レーン 2 本にヘッドレス xcodebuild シャード 1 本を想定する。それ以上は APFS のディスク競合と WindowServer の GPU スケジューリングで UI が重くなりがち——2 台目の VmMac mini を足すか、長寿命レーンはホスト単位のクローン分離へ切り替える。
CI ではブランチごとクローンがワークツリーより優れるか? サブモジュールの pin が分岐する、SwiftPM Package.resolved のコミットが異なる、破壊的 git clean が共有オブジェクト DB のエンジニアを止める——そのようなパイプラインでは yes。履歴を共有し別作業ツリーだけ欲しいならワークツリーが勝つ。
DerivedData をワークツリー間で共有すべきか? レーンごとに名前空間付き DerivedData ルートを、ワークツリー単位の xcconfig かラッパーで指定する。1 フォルダ共有はインクリメンタルビルドでレースを招く。
専用 mini プールが必須になるのはいつか? App Store 配布証明書が 1 つのログインキーチェーン方針に共存できないとき、または UI テスターが同時に画面収録を必要とするとき——ユーザに合わせて VmMac ホストを分割する。
カノニカルな統合レーンはどの VmMac リージョンに置くべきか? 主要 Git リモートの RTT と CDN に最も近い地理を選ぶ。五つの足跡は同じ:香港、日本、韓国、シンガポール、米国。固定前に 48 時間の clone 取得サンプルを検証する。
2026 年も Mac mini M4 がブランチレーンに勝つ理由
Mac mini M4 は並列 Swift コンパイルを静かに持続し、2 本のインタラクティブ Xcode を十分なユニファイドメモリ帯域で支える——夜間マージでノート熱設計が苦しむところ。VmMac なら HK/JP/KR/SG/US に追加レーンを調達遅延なしで立てられる:Git RTT と顧客地理に合わせ、まず SSH、TCC 重い所だけ VNC。ブランチ隔離はコードとして扱い、スナップショット幻想に頼らない。