SVN web geliştirme çevrimi sorunu

5 Cevap php

Ben şu anda çalışmak için örgüt PHP uygulamaları geliştirmek için SVN kullanır. Bizim geliştirme döngüsü yapıyor, basit başlayan bir hemen değişiklikleri görmek için post-commit kanca kullanarak güncellemeleri web kök işlemek. Biz gelişim özellikleri hata düzeltmeleri yolunda alma ve üretime taşınmasını sabit dosyaları tutan ve bazen eşya sunucuda sorunları neden olan bir sorunu koştu daha.

Yani tüm tam bültenleri kendi dalında kopyalanan demektir "serbest dallanma" şema, böylece bu dalda meydana ihtiyaç üretim ve "uzun vadeli" kalkınma için yapılan tüm değişiklikler gövdede meydana tanıttı. Bu ilk başlayan fikir sadece düzeltmeleri yapmak ve gövde geri kendi güncellemelerini hareketli sorumlu geliştirici olun, ama geliştiriciler beş örneklerini sonra körü körüne veri kaybına neden değişiklikleri birleştirme ve "hemen salım öğelerin" sürekli gelişme oldu serbest dal bu metodoloji terk edildi.

Ben fazla kayıp potansiyeli yaratan bir özel dal gövde içine birleştirilmiş çıkış yolu senkronize bir dalı ile karşı karşıya am (bazı insanlar bagaj / şube konseptinin "olsun" yoktu çünkü ve gövdede gelişmekte olan) değişiklikler ile bilin kod geçerli sürüm şube geri geçtiğimiz ayın tüm değişiklikleri birleştirme zaman.

Ben baştan başlamak ve web geliştirme uygun bir geliştirme / sürüm döngüsü zorlamak için bir şans var. SVN bu durumda biz üretime tam paketi taşımadan tam bir yıl gidebilir "bırakma" geliştirme (ikili uygulamalar), yönelik bir hareket gibi görünüyor.

With that background, here is my question: What Web Development SVN cycle and/or schema would you recommend for this situation? Does this require a complete methodology overhaul or am I just missing something simple?

Herhangi bir fikir için teşekkürler!

5 Cevap

İşte tipik gelişim döngüsü; biz "pseudo çevik" demektir; ve 2 hafta yayın döngüsü çalışır.

Tüm projeler gövdede bir şube başlayacak. İstisna yok.

Proje bitmiş, ve kod gözden temizler sonra, geliştirici gövde içine şube birleştirmek için yeşil ışık verilir. Bu şekilde; iyice incelenmesi henüz herhangi bir kod gövde üzerinde kendi yolunu yapar. Biz sürekli entegrasyon için CruiseControl kullanmak, böylece herhangi bir test başarısız olursa bir gövde taahhüt sonra, geliştirici onları sabitleme sorumludur. Bu düzeltmeler gövdede gidin.

Sonraki sürümü bir hafta önce; Biz bırakma "tag" (aslında başka bir dal) oluşturmak ve QA üstü göndermek. Eğer geri bu noktada bagaja kodunuzu birleştirilmiş değil varsa, bir sonraki sürümü ile dışarı gitmiyor. (Önemli not: Bu sürüm "etiketi" arka gövde için birleşti asla şimdiye kadar.). QA böcek bulduğu gibi; onlar geliştirici geri atanan konum. Geliştirici onları giderir zaman; Onların değişiklikler bırakma etiketi ve gövde hem kararlı olmalıdır.

Bırakma günü geldiğinde; biz bu etiketi her şeyi bırakın. Sonrası serbest düzeltmeleri durumunda; Birisi bırakma etiketi kesildikten sonra gövde için yeni bir proje birleşir eğer biz QA döngüsü, bu şekilde olduğunuzda aynı yönergeleri izleyin; yanlışlıkla acil düzeltme ile yayımlanan almak değil.

Ter, tekrar, durulama ...

Bu başına sorunuza cevap olmayabilir; ama umarım bu geliştirme süreci kurmak isteyebilirsiniz nasıl bir görüş iyi dış noktası olarak hizmet vermektedir. Bu bizim orijinal bir süreç değil, ama doğrusu biz geçen yıl ya da iki ile geldim, ne ve benim deneyim, bu önde biz önce bunu yapmak için kullanılan yol çarçabuk olduğunu.

Bu konuda herhangi bir açıklama istiyorsanız; Bana bir yorum bırakın ve ben gerektiğinde güncelleme olacak.

Zaten bu kullanıyorsanız eğer ben söyleyemem ama çok gelişme dalları tavsiye. Her yeni özellik / hata sonunda kadar geri birleştirilecek olduğunu gövde (veya şube) kapalı kopyalanan kendi şubesi vardır. Bu özellik için tüm geliştirme ve check-in devel şube gerçekleşecek. Özellik / hata düzeltme tamamlandıktan sonra, gövde sonra İLK geliştirme şube birleştirilir ve temel test ve doğrulama (standart testbed?) Yapıldıktan sonra sonra kalkınma dal sonra her şey olması gerektiği bilgisine sahip gövde içine birleştirilmiş olabilir orada.

Herhangi bir yeni gövde değişiklikleri almak ve ardından önce geri gövdeye birleştirilmesi devel şube test için devel içine dal gövde kilit varlık birleştirilmesi. Her değişiklik kendi şubesi varsa, o geliştiricileri oldukça hızlı bir şeylerin salıncak içine almak.

VE diğerleri gibi zaten belirttiğim personelin eğitimi. Personel eğitimi ve kendi dalı olan her değişikliğin hiçbir istisna NO istisnalar. SVN'de kopyalar ucuz ve kolay şekilde bir istisna için gerçek bir bahane yok.

Eğer bu kullanmak ne olursa olsun sistem, daima sert. Ben daha önce kullandığınız bir daha iyi çözümler var şüpheliyim. Belki kavramı üzerinde meslektaşlarını eğitmek daha fazla zaman harcamak?

Ben bu konuda Bart yedeklemek; sorunu eğitimdir. Eğer projeleri aksi yönetmek için çok karmaşık hale gelmeden önce düzgün bir SVN kullanarak meslektaşlarını almak gerekir. Sizin dallanma düzeni açıklamasından tamam geliyor ama bir kişi planı herkes için kıracak aşağıdaki değil doğrudur.

Projelerinizi daha karmaşık hale gelmeden önce tekrar, şimdi bunu.

Iş birinci dereceden SVN nasıl çalıştığı üzerinde personel eğitmek, ve bunun arkasında metodoloji olacaktır. Ne olursa olsun bunu takip edemez eğer, düzeni yapmak ne kadar zarif, onlar değil.

Kendimi 'Özellik' dallarında her şeyi yapmak. Benim düzeni bu gibi:

branches/
    [feature branches]
    stable/
tags/
    [all of our releases]
trunk/

Daha bir kaç dosya, ya da büyük iş dokunan şey, bir özellik şube bitmiş olur. Küçük hata düzeltmeleri veya hızlı çalışma düz gövde yapılır. Gelişimi boyunca, dalları tüm gövde (gövde birkaç günde dalları birleştirilir) ile senkronize tutulur.

Bırakma zamanı geldiğinde, biz serbest bırakılması için planlanan tüm özelliklerini alır ve gövdede onları birleştirmek. Bir özelliği şube, birleştirilmiş kontrol ve iyi olursa, istikrarlı şube taşınır. Yıkama, durulama, tüm özellik branşlar için tekrarlayın.

Istikrarlı tamamlandıktan sonra, o bir sürümü olarak etiketlenmiş ve bizim yapı sistemi şimdi yeni etiketi dayalı üretimi inşa edebilirsiniz.

Biz düz üretime gitmek acil düzeltmeleri yapmak gerekiyorsa, etiket düzeltilmiş, kontrol edilir ve bir yama oluşturulur. Yama gövde uygulanmış ve daha sonra Kararlı beslenir ve herhangi bir yeni özellik şube edilir.