glosarium
apa itu isolasi worktree?
TL;DR
Isolasi worktree berarti setiap agent AI mendapat salinan kodemu sendiri, di branch sendiri, di folder sendiri. Agent lalu bisa mengedit file yang sama pada saat yang sama tanpa saling menimpa. Checkout utamamu tetap tak tersentuh sampai kamu me-merge. Pane mengatur ini secara otomatis untuk setiap pane.
Isolasi worktree berarti setiap agent AI bekerja di salinan kodemu sendiri, di branch sendiri, di folder sendiri. Beberapa agent lalu bisa mengubah file yang sama pada saat yang sama tanpa saling menimpa, dan checkout utamamu tetap tak tersentuh sampai kamu me-merge.
masalahnya
Agent yang berbagi satu folder pada akhirnya akan saling menimpa.
Kamu meminta agent A menulis ulang halaman login dan agent B menambahkan alur pendaftaran. Keduanya perlu mengubah auth.ts. Di satu folder bersama, agent B menyimpan versinya dan diam-diam menggantikan edit agent A. Tak satu pun agent menyadarinya, dan kamu baru tahu belakangan.
Itu sebabnya beberapa agent di satu direktori adalah taruhan. Semuanya berjalan sampai dua di antaranya menyentuh file yang sama, lalu pekerjaan seseorang hilang.
solusinya
Satu worktree per agent: file dan branch terpisah, riwayat sama.
Beri setiap agent git worktree sendiri: folder terpisah dengan branch terpisah, yang berbagi riwayat yang sama. Agent A bekerja di satu worktree, agent B di worktree lain, dan keduanya bisa mengedit auth.ts karena mereka mengedit salinan yang berbeda.
my-project/ ← main branch, untouched
my-project/worktrees/
├─ login-rewrite/ ← agent A, branch login-rewrite
└─ signup-flow/ ← agent B, branch signup-flowyang diisolasi
File, branch, dan shell terpisah. Riwayat, remote, dan objek git dibagi bersama.
| terisolasi | digunakan bersama |
|---|---|
| File dan perubahan yang belum di-commit | Riwayat git dan commit |
| Branch | Remote (origin) |
| Status shell dan env var | Konfigurasi git |
| Direktori kerja | Penyimpanan objek (menghemat ruang disk) |
cara pane melakukannya
Pane menyiapkan dan membersihkan worktree untuk setiap pane secara otomatis.
Saat kamu membuat pane, Pane memberinya worktree yang sudah disiapkan lebih dulu, memberinya branch baru, menyalin file .env, pengaturan agent, dan node_modules milikmu, lalu memulai agent di sana. Saat kamu mengarsipkan pane, Pane memeriksa pekerjaan yang belum tersimpan dan menghapus worktree-nya. Kamu tak pernah mengetik git worktree add sendiri.
apa yang tak dicakup isolasi
Worktree memisahkan file agent. Worktree tak membatasi apa yang bisa dilakukan agent.
Worktree adalah folder, bukan sandbox. Agent tetap berjalan dengan izin user-mu, jadi satu agent bisa membaca file worktree lain lewat path-nya, mengakses jaringan, atau mengubah hal di luar repo. Dalam praktiknya agent tetap di folder kerjanya, tetapi kalau kamu butuh batas yang tegas, jalankan di container atau VM.
Beberapa hal dibagi bersama di luar git: database yang dipakai aplikasimu, port dev server, cache package global. Pane memberi setiap pane blok port sendiri di PANE_PORT; untuk database, pakai setup script atau alat yang membuat satu database per worktree.
terkait
Sumber
- Koreksi
- Jika ada yang salah atau sudah usang di sini, beri tahu kami dan kami akan memperbaikinya serta memperbarui tanggal di bagian atas. Buka issue di GitHub
- Sumber
pertanyaan yang sering diajukan
Oleh Parsa Khazaeepoul, salah satu pendiri Pane. .