Meta veri eksikliği artık söz konusu olmadığında, v1.5'ten önce SVN'de birleştirme konusundaki rahatsızlık artık kullanılmıyor mu?


11

SVN ile başlıyorum ve pek çok kaynak DVCS araçlarına kıyasla SVN'de birleştirmenin çok zor olduğunu söylüyor. En son sorular ı SE burada bulabiliriz 2012 yılından itibaren bulunmaktadır.

Bazen bunun nedeni, v1.5'ten önceki SVN'nin meta verilere sahip olmadığından, ancak SVN'nin şu anda 1.8.9 sürümündedir.

SVN'nin şimdi v1.5'ten çok daha olgun olduğu ve özellikle SVN 1.5'i kullanmadığımız gerçeği göz önüne alındığında, bahsedilen meta veri eksikliğinden muzdarip değiliz - SVN'ye karşı bu argümanlarda hala çok geçerlilik var mı?

DVCS'nin genellikle daha arzu edilen tamamen farklı bir yaklaşıma sahip olduğunu anlıyorum, ancak SVN'yi herhangi bir nedenden ötürü "zorlaması" gerekenler için, birleştirme artık gerçekten "cehennem" değil, değil mi?


3
@ TorbenGundtofte-Bruun - Şu anda böyle bir cevap verecek zamanım yok, ama "SVN'den korkma" diyeceğim. Sınırlamaları vardır, ancak DVCS'ler de vardır.
kdgregory

Yanıtlar:


15

Basit vakalara sadık kalırsanız iyi çalışır , ancak olmayan karmaşık olanlar da vardır.

Düşünebileceğim sınırlamalar:

  • En son ataları ancak ilgili dallardan birindeyse bulabilir. Yani oluşturursanız branches/thisve branches/thathem trunkbirleştirmek deneyin ve branches/thiskarşı branches/that, bu ne yapacağını bilemezsiniz. Bu, şubeyi yalnızca üst öğeye veya üst öğeden birleştirebileceğiniz anlamına gelir. İki özellik dalı başlatır ve daha sonra özelliklerin birbirine bağlı olduğunu ve bunları birleştirmesi gerektiğini fark ederseniz, bu durumla karşılaşabilirsiniz.

  • Yeniden adlandırmaları izleyebildiğini iddia ederken, dosyalar bir tarafta taşındığında ve diğer tarafta değiştirildiğinde dalları birleştirmek her zaman doğru dosyaları bulamaz ve manuel olarak düzeltmek, gerekli bilgileri hiçbir yerde bırakmadığı için biraz sıkıcıdır. el.

  • Eklenen dosyalar bazen daha sonraki birleştirmelerde sahte çakışmalara neden olabilir.

  • Subversiyonun ayrı bir şube kavramı olmadığından, bir projenin sadece bir alt ağacını birleştirebilirsiniz ve bu da oldukça hızlı bir şekilde büyük karışıklığa yol açabilir. Her zaman tüm dalları birleştirmeye özen göstermeniz şiddetle tavsiye edilir. Ne yazık ki bazı nedenlerden dolayı bazen birleştirme bilgisi özellikleri gereksiz görünseler ve birleştirme tüm şubeye doğru bir şekilde yapıldıysa bile alt dizinlerde görünür.

  • Son fakat en az değil, yavaş . Herhangi bir ciddi boyuttaki bir projede birleşmek çoğu DVCS'nin bir saniyenin altında yapabileceği dakikalar alır .


+1, harika cevap. Ortak ata ile ilgili nokta, dikkat etmem gereken bir şey. Bu gerçekler için referanslarınız var mı?
Doval

1
@Doval: Deneyim.
Jan Hudec

muhtemelen ayrıca svn dos için ayrı bir etiket kavramı olmadığını belirtmek gerekir
jk.

İlk merminizle ilgili olarak (çok net bir açıklama için teşekkürler!), Özellik dalları ile aynı dal noktasına sahip bir birikim dalı kullanılarak çözülemez mi? ( Vance98'e dayanarak ) Sorun, yalnızca iki özellik dalı farklı dallanma noktalarına sahip olduğunda ortaya çıkıyor mu?
Torben Gundtofte-Bruun

@ TorbenGundtofte-Bruun: En son ortak ataların bir şube noktası olması gerekmez. Bunu kendiniz bulabilir ve yıkımın belirli peg revizyonları arasında değişiklik yapmasını söyleyebilirsiniz. Ama sorun şu ki, bu çok fazla iş ve bunu yapmak zorunda olduğunuzu anlamalısınız, çünkü yıkım mutlaka birleşemeyeceğini söyleyerek ellerini yukarı atmaz. Bunun yerine, en yeni olmayan ortak bir ata bulabilir ve çok sayıda çatışma yaratabilir.
Jan Hudec

1

Deneyimlerime göre, SVN'de birleştirme 1.6 sürümünde 'düzeltildi'. Hem Mercurial hem de SVN'de çalışıyorum ve SVN'nin 1.6 sürümünden beri, birleştirme her iki platformda da aynı miktarda çalışma gibi görünüyor. Bunun tek istisnası --reintegrate, bir daldan SVN kullanarak gövdeye geri dönerken seçeneği sağlamayı hatırlamanız gerekebilir .

Bu sadece benim operasyonel deneyimim. SVN'nin iç kısımları hakkında hiçbir şey bilmiyorum.


2
1.8 nihayet neyse ki, "yeniden entegre" davanın kendisini tespit edebilir. Ancak bu yalnızca yerel veya uzaktaki en son ortak atalarla ilgilenir. Yine de üçüncü dalda bulamıyor.
Jan Hudec
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.