SORU
6 AĞUSTOS 2009, PERŞEMBE


Git Cherry-pick vs Birleştirme Akışı

Bir repo sürdürücü ve ben bir katılımcı değişiklikleri çekmek istiyorum varsayarak, birkaç olası iş akışı vardır:

  1. Uzaktan (sırayla) taahhüt her 0**. Bu durumda gıt kayıtları uzak şube alakasız olarak tamamlama.
  2. I merge şube, tüm değişiklikleri çekerek, yeni bir ekleme "çatışma" taahhüt (gerekirse).
  3. Ben merge uzak şube tek tek (sırayla tekrar), çatışmalar her taahhüt yerine bir bütün olarak gruplandırılmış için kaydedilebilmesi taahhüt.
  4. Eksiksiz, rebase (cherry-pick seçenek olarak? aynı) yapabilirsin, ancak benim anladığım bu katkı için karışıklığa neden olabilir. Belki de bu seçenek 1 ortadan kaldırır.

Her iki durumda da 2 ve 3, 1 gıt aksine tamamlar, şube tarih kayıtları.

Ya cherry-pick merge yöntemleri kullanarak tarif arasında pro ve con nedir?Benim anlama yöntemi 2 norm olduğunu, ancak büyük çözmenin tek bir taahhüt olduğunu hissediyorum "çatışma", en temiz çözüm değildir. birleştirme

CEVAP
6 AĞUSTOS 2009, PERŞEMBE


Her iki rebase (cherry-pick) ve merge avantajları ve dezavantajları var. merge burada savunuyorum, ama her iki anlayış değer. (Burada bir alternatif için, iyi savundu answer rebase tercih edilen durumlar sıralanıyor bak.)

merge neden bir çift için cherry-pick rebase tercih edilir.

  1. Sağlamlık. Bir SHA1 tanımlayıcı değil sadece kendi içinde ama aynı zamanda tanımlar işlemekilgilidiğer tüm devamındaki tamamlar. Bu size verilen bir SHA1 de depoyu devlet tüm klonlar arasında aynı olan bir garanti sunuyor. Var (teoride) birisi aynı değiştirmek gibi bir şey yaptı ama aslında veya depo bozulmasını kaçırma bu şansı yok. Cherry-pick bireysel değişiklikler olabilir ve muhtemelen aynı, ama bir garantisi var. (Küçük bir çocuk gibi ikincil sorun yeni cherry-picked tamamlar alacak kadar fazladan alan varsa başkası kiraz alır aynı commit yine, her ikisinin de olması bugünün tarihini bile çalışma kopyalarını sonunuzun aynı.)
  2. Kullanım kolaylığı. İnsanlar merge iş akışı oldukça kolay anlamak eğilimindedir. rebase daha gelişmiş kabul olma eğilimindedir. Daha iyi anlamak için her ikisi de, ama insanlar kim olmak istemiyor uzmanlar sürüm kontrol (deneyimim vardır dahil birçok meslektaşları kimsin lanet iyi de ne yapıyorlar, ama istemiyorum harcadığınız ekstra zaman) daha kolay bir zaman birleştirme.

Hatta birleştirme-ağır bir iş akışı ile rebase cherry-pick belirli durumlar için yararlı

  1. merge bir dezavantajı dağınık tarihidir. rebase eğer düzenli olarak Diğerleri içinde birleştirilmiş olmaları geçmişinizi,' değiştirir. dağınık olmaktan işleyen uzun bir dizi engeller O bunu kullanmak gibi aslında ana amaç. Ne olmak istiyorumçokdikkatli, diğer depoları ile paylaştığınız hiç rebase kodu. Bir taahhüt bir kez pushed başkasının üzerine işlediği ve rebasing en iyi çoğaltma türünü yukarıda açıklanan neden olur. En kötü ihtimalle uzun bir süre ortaya çıkarmak için çok karışık bir depo ve ince hatalar ile sona erebilir.
  2. cherry-pick temelde atmaya karar verdik konu daldan değişiklikleri küçük bir alt örnekleme için yararlıdır, ama kullanışlı parçaları bir çift vardır fark ettim.

Tercih eden bir çok değişiklik birleştirmek için: sadece bir sürü daha kolay. Onları çok sahip başlayınca tek tek değişiklik birleştirir yapmak çok sıkıcı olabiliyor. Birleştirme gıt çözünürlük (ve Çarşı Mercurial, ve çok iyi, çok. Büyük sorunlar içine bile uzun dalları çoğu zaman birleştirme yayınlanmaz. Ben genellikle her şeyi bir anda ve tek bir birleştirmeeğerGeri musunuz çatışmalar çok sayıda olsun ve yeniden çalıştırın, parça parça birleştirme. O zaman bile büyük parçalar halinde yapıyorum. Çok gerçek bir örnek olarak birleştirme değişiklikleri değerinde 3 ay oldu bir meslektaşım vardı, ve 250000 doğrultusunda bazı çatışmalar 9000-temel kod var. Düzeltmek için ne yaptık o bir aylık birleştirme: çatışmalar doğrusal kurmak, küçük parçalar halinde yapmak sonuçlarıfar9000'den daha az çakışıyor. Hala bir sürü iş olduğunu, ama daha çok bunu yapmaya çalışıyor, bir seferde bir taahhüt.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bashirsultani

    bashirsultan

    22 Mart 2010
  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • Christopher Bill

    Christopher

    30 NİSAN 2009