git-parsec — dari membuat worktree hingga merge PR hanya dengan satu tiket
(github.com/erishforG)Ini adalah alat CLI yang mengotomatisasi workflow pengembangan paralel berbasis Git worktree.
Masalah yang diselesaikan
Saat mengerjakan beberapa tiket sekaligus tanpa berpindah branch, git worktree adalah pilihan yang bagus.
Namun, untuk dipakai dalam pekerjaan nyata ada banyak tugas berulang:
- membuat worktree dan memberi nama branch → cukup satu baris
parsec start PROJ-123 - push, membuat PR, dan menautkan tiket → cukup satu baris
parsec ship PROJ-123 - memeriksa CI, merge, dan membersihkan worktree → cukup satu baris
parsec merge PROJ-123
Pekerjaan berulang yang selama ini dilakukan setiap saat dipangkas menjadi masing-masing satu baris perintah.
Workflow inti
parsec start PROJ-123 # worktree + branch + integrasi tiket Jira
# ... coding ...
parsec ship PROJ-123 # push → buat PR (judul/tautan tiket disertakan otomatis)
parsec ci PROJ-123 # tampilkan tabel status CI
parsec merge PROJ-123 # tunggu CI → squash merge → pembersihan worktree otomatis
Fitur utama
Integrasi tracker
- Jira / GitHub Issues — otomatis memakai judul tiket, transisi status, board view, inbox
parsec ticket— melihat detail tiket dari terminalparsec board— melihat sprint board Jira lewat CLI
Manajemen worktree
- Integrasi shell — berpindah
cdantarsesama worktree secara otomatis denganparsec switch - Stacked PR — membangun rantai PR dengan opsi
--on, rebase massal denganstack sync - Undo — worktree yang terhapus karena kesalahan pun bisa dipulihkan dalam sekali jalan
Otomatisasi
- Release — pembuatan tag + merge + GitHub Release + changelog secara otomatis
- Mode output Human / JSON / Quiet — mudah diintegrasikan dengan skrip CI
- 27 subcommand — start, list, status, ship, merge, ci, diff, sync, adopt, rename, dll.
Instalasi
cargo install git-parsec
Atau Anda bisa mengunduh biner macOS / Linux dari GitHub Releases.
Cocok untuk
- Anda yang mengerjakan banyak tiket sekaligus (pengembangan paralel berbasis worktree)
- Anda yang lelah dengan pekerjaan berulang antara Jira + Git
- Anda yang ingin mengurangi biaya context switching di monorepo
- Anda yang ingin memberi lingkungan kerja terpisah untuk agen AI (Claude Code, dll.)
Tautan
- GitHub: https://github.com/erishforG/git-parsec
- Instalasi:
cargo install git-parsec
Ditulis dengan Rust sehingga ringan, dan bisa langsung diterapkan ke repositori git yang sudah ada.
Masukan atau pertanyaan sangat diterima!
6 komentar
Belakangan saya tertarik setelah membaca blog teknis tentang worktree paralel, tetapi sayang saya tidak bisa melihat detail implementasinya, jadi sepertinya saya harus mendalaminya lewat open source ini!
Di bawah ini adalah artikel blog yang saya baca.
https://medium.com/ajd-tech/…
Terima kasih! Tulisan blog yang Anda buat juga, bahkan jika dibaca secara ringan, terasa ditulis dengan sangat baik.
Kalau ada kesempatan, setelah Anda melihatnya, bila ada bagian yang kurang berkenan atau ingin diperbaiki, silakan ajukan issue atau kirim PR dengan santai!
Menurut saya, parallel worktree adalah pendekatan dari work yang kotor -> clean nicely,
dan saya rasa ini akan menjadi cara pengembangan utama ke depannya.
Sepertinya repositori yang bagus.
Terima kasih :) Anda sudah menuliskan dengan baik bagian yang saya pikirkan.
Pendekatan yang memaksa pekerjaan paralel berbasis worktree ini cukup mengesankan.
Saya juga saat menangani beberapa tiket sekaligus
mengelolanya dengan kombinasi
tmux+ beberapa branch untuk memisahkan tiap lingkungan kerja,tapi pada akhirnya ada terus masalah karena pengelolaan state menjadi kusut.
Mengikat lifecycle seperti parsec dengan start/ship/merge
justru sepertinya akan lebih membantu mengurangi kesalahan.
Ada yang saya penasaran,
saat beberapa PR terbuka secara bersamaan lalu urutan merge berubah
atau ketika muncul situasi yang membutuhkan rebase, bagaimana stack sync bekerja?
Terima kasih atas perhatiannya!
stack syncmelakukan rebase berdasarkan hubungan induk-anak, dalam urutan topologis (topological order).Cara kerja
Strukturnya adalah menelusuri dari root dengan BFS sambil me-rebase setiap anak ke atas branch induknya. Jika main diperbarui, perubahan akan tersebar secara alami mulai dari root.
Jika urutan merge berubah
Saat ini desainnya berasumsi merge dilakukan dari bagian bawah stack (induk) terlebih dahulu. Jika PR di tengah di-merge lebih dulu, anak-anak dari node tersebut akan gagal pada
stack syncberikutnya karena tidak bisa menemukan induknya. Dalam kasus ini,base perlu ditetapkan ulang secara manual.
Saat terjadi konflik
Jika konflik terjadi selama rebase, hanya branch tersebut yang di-rollback dengan
rebase --abort, lalu sisanya tetap dilanjutkan. Karena hasilnya ditampilkan dalam bentuk tabel yang menunjukkan tiket mana yang berhasil/gagal, Anda hanya perlu menyelesaikan yang gagal secara manual.