4 puan yazan erish2150 2026-04-21 | 6 yorum | WhatsApp'ta paylaş

Git worktree tabanlı paralel geliştirme iş akışını otomatikleştiren bir CLI aracıdır.

Çözdüğü sorun

Branch değiştirmeden birden fazla bilet üzerinde aynı anda çalışırken git worktree iyi bir seçimdir.
Ancak gerçek iş akışında kullanmak için çok sayıda tekrarlı iş gerekir:

  • worktree oluşturma ve branch adlandırma → tek satırda parsec start PROJ-123
  • push etme, PR oluşturma ve bilet bağlantısı ekleme → tek satırda parsec ship PROJ-123
  • CI kontrolü, merge ve worktree temizliği → tek satırda parsec merge PROJ-123

Her seferinde tekrar edilen işler, artık her biri tek satırlık komutlara indirgeniyor.

Temel iş akışı

parsec start PROJ-123       # worktree + branch + Jira bileti entegrasyonu  
# ... kodlama ...  
parsec ship PROJ-123        # push → PR oluşturma (bilet başlığı/bağlantısı otomatik eklenir)  
parsec ci PROJ-123          # CI durum tablosunu gösterir  
parsec merge PROJ-123       # CI bekleme → squash merge → otomatik worktree temizliği  

Başlıca özellikler

Takip sistemi entegrasyonu

  • Jira / GitHub Issues — bilet başlığını otomatik yansıtma, durum geçişleri, board görünümü, inbox
  • parsec ticket — terminalden bilet detaylarını görüntüleme
  • parsec board — Jira sprint board'unu CLI üzerinden görüntüleme

Worktree yönetimi

  • Shell entegrasyonuparsec switch ile worktree'ler arasında otomatik cd geçişi
  • Stack PR--on seçeneğiyle PR zinciri kurma, stack sync ile toplu rebase
  • Undo — yanlışlıkla temizlenen worktree'leri tek hamlede geri yükleme

Otomasyon

  • Release — tag + merge + GitHub Release + changelog otomatik oluşturma
  • Human / JSON / Quiet çıktı modları — CI script entegrasyonu için uygun
  • 27 alt komut — start, list, status, ship, merge, ci, diff, sync, adopt, rename vb.

Kurulum

cargo install git-parsec  

Alternatif olarak GitHub Releases sayfasından macOS / Linux binary dosyalarını indirebilirsiniz.

Kimler için faydalı

  • Aynı anda birden fazla bilet üzerinde çalışanlar (worktree tabanlı paralel geliştirme)
  • Jira + Git arasındaki tekrarlı işlerden sıkılanlar
  • Monorepo içinde context switching maliyetini azaltmak isteyenler
  • Yapay zeka agent'larına (Claude Code vb.) bağımsız çalışma ortamı vermek isteyenler

Bağlantılar

Rust ile yazıldığı için hafiftir ve mevcut git repository'lerine doğrudan uygulanabilir.
Geri bildirim ve sorulara açığız!

6 yorum

 
puddingman220 2026-04-22

Kısa süre önce paralel worktree ile ilgili teknik blog yazısını görüp ilgimi çekmişti, ancak uygulama detaylarını göremediğim için hayal kırıklığı yaşamıştım; sanırım bu açık kaynakla konuyu bir kez derinlemesine ele almak gerekecek!

Aşağıda benim gördüğüm blog yazısı var.
https://medium.com/ajd-tech/…

 
erish2150 2026-04-22

Teşekkürler! Yazdığınız blog içeriğine de şöyle bir göz attım; gerçekten çok iyi hazırlanmış.
Fırsatınız olursa göz atın, hoşunuza gitmeyen ya da geliştirmek istediğiniz bir nokta varsa rahatça issue açabilir veya PR gönderebilirsiniz!

 
shaun0927 2026-04-21

Paralel worktree yaklaşımını, work dirty -> clean nicely şeklinde düşünüyorum.
Bunun gelecekte başlıca geliştirme yöntemi olacağını da düşünüyorum.
Güzel bir repo gibi görünüyor.

 
erish2150 2026-04-21

Teşekkür ederim :) Aklımdaki noktaları çok iyi yazmışsınız.

 
bigcataroido 2026-04-21

worktree tabanlı olarak paralel çalışmayı zorunlu kılan yaklaşım etkileyici görünüyor.

Ben de birden fazla ticket’ı aynı anda ele alırken
her çalışma ortamını ayırmak için tmux + birden fazla branch kombinasyonuyla ilerliyorum ama
sonuçta durum yönetimi sürekli karışma sorununa yol açıyordu.

parsec gibi start/ship/merge ile lifecycle’ı bağlamak
aslında hataları azaltma yönünde daha iyi bir yaklaşım gibi duruyor.

Merak ettiğim bir nokta var:
birden fazla PR aynı anda açıkken merge sırası değişirse ya da
rebase gereken bir durumda stack sync nasıl çalışıyor?

 
erish2150 2026-04-21

İlginiz için teşekkürler!

stack sync, ebeveyn-çocuk ilişkisine göre topological order sırasıyla rebase işlemi yapar.

Çalışma şekli

parsec start PROJ-1                 # main tabanlı  
parsec start PROJ-2 --on PROJ-1     # PROJ-1 branch'i tabanlı  
parsec start PROJ-3 --on PROJ-2     # PROJ-2 branch'i tabanlı  
  
parsec stack sync                   # aşağıdaki sırayla otomatik rebase  
# 1. PROJ-1 → origin/main üzerine rebase  
# 2. PROJ-2 → PROJ-1 branch'i üzerine rebase  
# 3. PROJ-3 → PROJ-2 branch'i üzerine rebase  

Kökten başlayıp BFS ile dolaşırken her çocuğu ebeveyn branch'inin üzerine rebase eden bir yapısı var. main güncellendiyse değişiklikler kökten başlayarak doğal şekilde yayılır.

merge sırasının değiştiği durumlar

Şu anda stack'in alt kısmından (ebeveynlerden) başlayarak merge edilmesi varsayımıyla tasarlanmış durumda. Eğer ortadaki bir PR önce merge edilirse, o düğümün çocukları bir sonraki stack sync sırasında ebeveyni bulamadığı için başarısız olur. Bu durumda base'i manuel olarak yeniden belirtmeniz gerekir.

Çakışma oluştuğunda

Rebase sırasında çakışma çıkarsa yalnızca ilgili branch rebase --abort ile geri alınır ve kalanlar ilerlemeye devam eder. Hangi ticket'ın başarılı/başarısız olduğunu sonuç tablosunda gösterdiği için, yalnızca başarısız olanları manuel olarak çözmeniz yeterlidir.