SORU
15 NİSAN 2011, Cuma


Dağıtılmış Sürüm Kontrol Sistemleri ve Kurumsal İyi bir karışım mı?

Dağıtılmış kaynak kontrol sistemleri (DVCS - Mercurial gibi) açık kaynak projeleri için mantıklı bir neden göremiyorum.

Ama bir işletme için anlamlı mı? (elinize sağlık merkezi gibi Kaynak Kontrol Sistemi üzerinde)

Hangi özellikler bir DVCS bu çok geliştirici bir sermaye, iyi ya da kötü uygun hale getirir? (merkezi bir sistem üzerinde)

CEVAP
16 NİSAN 2011, CUMARTESİ


Sadece Mecburen, SVN veya ClearCase seçimler merkezi VCS olduğu büyük bir bankacılık şirketi, bir DVCS (bu durumda Gıt) tanıttı:
Ben zaten zorlukları biliyordu (önceki cevabımı bakın "Can we finally move to DVCS in Corporate Software? Is SVN still a 'must have' for development?")

Üç cephede meydan olmuştur:

  • merkezileşme: merkezi olmayan model, esasları olmakla birlikte (ve erişim sahip iken, özel tamamlar veya ağ olmadan çalışmak için izin verirtamtarih), hala açık bir dizi olması gerekirmerkezirepos, tüm geliştiriciler için Ana referans olarak kabul ediyor.

  • kimlik doğrulamasıbir DVCS sağlar "kayıt dışı"... hemen hemen herkes gibi (işlemek) kodunu ("foo" e-posta "foo@bar.com"). yazar
    git config user.name foo, git config user.name whateverNameIFeelToHave, ve sahte bir isim ile kaydeder.
    İyi ile karıştırmayın bu eşsiz merkezi "Active Directory" kullanıcı referans büyük işletmeler tarafından kullanılır.

  • yetkilendirme: varsayılan olarak, klon, itme veya çekmeherhangi birDepo ve değiştirherhangi birşube, ya da herhangi bir dizin.
    Duyarlı projeler, bu bir engelleme sorunu (bankacılık dünyası genellikle çok koruyucu bazı fiyatlandırma veya quants algoritmaları, hangi gerektirir sıkı okuma/yazma erişimi için bir çok sınırlı sayıda kişi)

Cevap (Git bir Kur için):

  • merkezileşme: benzersiz bir sunucu herhangi bir depo tarafından erişilebilir olması için kurulmuşturtümkullanıcılar.
    Yedekleme (ıncremental her gün, her hafta tam) dikkat çekici olmuştur.
    DRP (Felaket Kurtarma Planı), SRDF gerçek zamanlı veri çoğaltma ile başka bir site üzerinde, ve ikinci bir sunucu ile hayata geçirildi.
    Bu Kur kendisi bağımsız türü başvuru veya aracı gerekiyor (DVCS veya Nexus repo veya ana Hudson zamanlayıcı, ya da...): herhangi bir araç olabilir hangi kritik bir açıklaması üretim ihtiyaçları için yüklü sunucularda yedekleme ve DOKTOR

.

  • kimlik doğrulamasısadece iki protokol, kullanıcıların ana repo erişmek için izin verir:
    • ssh göre, kamu/özel anahtar ile:
      • kullanıcılar kuruluş için harici (off-shore geliştirme gibi) için faydalı
      • ve yararlıjenerikhesapları, Active Directory yöneticisi istemiyor oluşturmak için (çünkü bu da bir "anonim" hesabı): bir gerçek kişi olması Sorumlu Genel hesap, ve olurdu tek sahibi olan özel anahtar
    • bir Apaçi ile https tabanlı bir LDAP ayarı ile kullanıcı kimlik doğrulaması: bu şekilde, gerçek bir giriş bu repos herhangi gıt operasyon için sağlanmalıdır.
      Git smart http protocol, izin değil sadece pull (okuyun) http yoluyla, ama aynı zamanda push (yaz) http bulunmaktadır.

Kimlik doğrulaması bölümünde, Gıt düzeyinde takviye edilmiştirpost-receiveemin kılan kancaen az bireğer çalıştığınız işleyen bir repo "committer adı" kullanıcı adı sus ya da http protokolü ile tespit eşittir. bir vardır
Diğer bir deyişle, git config user.name doğru kurulum için gereken, ya da merkezi bir repo yapmak istediğiniz herhangi bir itme reddedilecektir.

.

  • yetkilendirme: bir önceki ayarları (ssh veya https) perl aynı senaryo, adında aramak için kablolu vardırgitoliteparametreleri ile:
    • gerçek adı bu iki protokol tarafından tespit edildi
    • git komutu (klon, itme veya çekme) kullanıcı yapmak istiyor

Bu yetkiler (okuma/depo içindeki dizinler için belirli bir depo içinde şube için her bir depo için, ya da, hatta yazma erişimi) ayarlanmış 12**.
Eğer erişim düzeyi git komutu ile gerekli ACL dosya içinde tanımlanan bir maç yok eğer doğru değilse, komut reddedilir.


Yukarıdaki açıklanır yapmam gereken bir ayar uygulamak için Git, ama daha da önemlisi, listeler belli başlı konularda gereken hitaben bir DVCS ayarı için anlamı büyük bir şirket ile eşsiz bir kullanıcı tabanı var.

Sonra, ve sonra, bir DVCS (Git, Mercurial, ...) sadece değerleri yüzünden ekleyebilirsiniz:

  • birden fazla site arasında veri alışverişi: bu kullanıcılar aynı Active Directory üzerinden kimlik doğrulaması, tüm bunları yaparken, dünya (şirketler genellikle iki ya da üç ülke arasında takım arasında gelişmeler için çalıştı) arasında bulunabilir. Bir DVCS doğal olarak verimli bir şekilde bu ekipler arasında veri alışverişi için yapılır.

  • ortamlarda çoğaltmabir ayar, kimlik doğrulama/yetkilendirme bakımı diğer özel sunucular üzerinde bu depoları klonlama için (test, üretim öncesi ve pre-dağıtım amaçlı entegrasyon test UAT için) sağlar

  • otomasyon süreci: kolayca hangi bir klon repo de kullanılabilir yerel olarak bir kullanıcının iş istasyonu, birim-test amacı ile "korunan" taahhüt teknikleri ve diğer akıllı kullanır: "What is the cleverest use of source repository that you have ever seen?".
    Kısacası, sorumlu ikinci yerel bir repo için zorlayabilir:

    • çeşitli görevler (kod birim test veya statik analiz)
    • bu görevler ise ana repo geri iterek başarılı
    • sürehala bu görevlerin sonucu için beklemek zorunda kalmadan ilk repo çalışıyoruz.

.

  • killer featuresHerhangi bir DVCS o, ana bir varlık ile birlikte geliyorbirleştirme(şimdiye kadar yapmaya çalıştığı karmaşık bir SVN ile iş akışı birleştirme? YasloooowlyClearCase?) ile 6000 dosyalarını birleştirme.
    Tek başına (birleştirme) anlamına gelir gerçekten yararlanmak branching, olurken mümkün hiç zaman birleştirme geri kod için başka bir "ana" doğrultusunda geliştirilmesi, çünkü bunun:
    • ilk kendi repo içinde yerel olarak, kimseyi rahatsız etmeden
    • uzak sunucuda, bunun sonucu iterek merkezi repo birleştirme.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • Max Lee

    Max Lee

    18 AĞUSTOS 2006
  • Propaganda Time

    Propaganda T

    19 EYLÜL 2010