7 puan yazan xguru 2022-01-21 | 3 yorum | WhatsApp'ta paylaş
  • Yama teorisine dayanırken aynı zamanda hızlı ve ölçeklenebilir

  • Commutation

→ Her bir değişiklik, sürüm kimliğini değiştirmeden sıradan bağımsız olarak uygulanabiliyor

git rebase ya da hg transplanttan çok daha basit bir iş akışı

branche benzer channels özelliği var, ancak diğer sistemlerdeki kadar önemli değil. Örneğin feature branch, Pijul'de sadece bir değişiklik

→ Geçmişi temiz tutmak varsayılan ayar

  • Merge correctness

→ Pijul, merge sırasında bazı garantiler veriyor

→ En önemlisi, satırların sırasının her zaman korunması. Bazen satırların karıştığı 3 yönlü merge'den farklı

→ Sıranın belirlenemediği durumlarda (eşzamanlı düzenleme gibi) conflict oluşuyor; bu yönüyle "Automatic" veya "No Conflict" olan sistemlerden ayrılıyor

  • First-class conflicts

→ Pijul'de conflict, "merge başarısızlığı" değil, standart bir durum olarak modelleniyor

→ Özellikle iki değişiklik arasında oluşan bir conflict, tek bir değişiklik olarak çözümleniyor

  • Partial Clones

→ Commutation sayesinde deponun yalnızca küçük bir alt kümesi klonlanabiliyor. Hatta gerçekten sadece o alt kümeye ait değişiklikleri uygulamak da mümkün

→ Partial Clone çalışması, büyük depolara kolayca gönderilebilen changes üretiyor

3 yorum

 
maxn0d3 2022-12-05

Git dürüst olmak gerekirse pratikte standart olduğu için kullanılıyor ama gerçekten çok rahatsız ediciydi -- Rust tabanlı Pijul’a yavaş yavaş geçmenin zamanı gelmişti

 
galadbran 2022-01-21

svn ile git arasındaki en büyük farklardan biri (dağıtık depo olma özelliğini saymazsak), svn'in diff yönetmesine karşılık git'in snapshot yönetmesi; ama patch theory denince nedense bunun diff yöneten tarafta olabileceğini düşündürüyor.

 
xguru 2022-01-21

Yama teorisi (Theory of Patches) için Darcs adlı dağıtık sürüm kontrol sistemine bakabilirsiniz.

Darcs ile Git karşılaştırılırken bu şekilde açıklanır.

Git'te kaydettiğiniz değişiklikler kümesine “commit”, Darcs'ta ise “patch” denir.