2010-06-01 17 views
6

Sürüm kontrolü ve web tabanlı uygulamam ile çalışmak için bir süreç oluşturuyorum.SVN Development and Release Process - Sanity Kontrolü

  1. Ben branches/development altında ana gelişmeyi yapıyor ve test için benim geliştirme sunucusu ile senkronize tutmak am: Bu defa ne var.
  2. Zend Framework'ü projeme taşımak için svn:externals kullanıyorum. Ben ilgilendiğim salımının etiketinden revizyon numarasını kullanabilirsiniz benim svn:externals şuna benzer şekilde Örneğin, 1.10.5 Release, revizyon 22306 altındadır.
    • -r 22306 http://framework.zend.com/svn/framework/standard/trunk/library/Zend/ Zend
    • -r 22306 http://framework.zend.com/svn/framework/extras/trunk/library/ZendX/ ZendX
  3. branches/development'dan 'a kadar test edilmiş, sabit kodu birleştirip trunk ile bir sürüm etiketi oluşturun. Daha sonra bu etiket tarafından yapılan revizyonu üretim sunucuma yayınlarım.

Henüz düzeltmeler için bir planım yok, ama sanırım üretim etiketlerini bu gibi durumlar için kullanabilirim.

Subversion'ı kullanırken yepyeni biriyim, bu yüzden lütfen bir şeye baktığımda veya kıçımda beni ısıtacak bir şey yapıp yapmadığımı bildirin.

Teşekkürler!

+2

böylece _that's_ için externals nelerdir! :) – zvolkov

cevap

1

Çoğu insandan daha iyi bir işleminiz var. Şu an için çalıştığım şirket, kullandığınız sürüm etiketleri yerine (kullandığımız komut dosyalarından dolayı) yeni üretim dalları (sürüm 1.01.1, 1.01.2 vb.) Oluşturmaları istisnasıyla tamamen aynı şeyi yapıyor.

Kesin olması gereken tek şey, bir arıza durumunda kolayca geri dönebilmenizdir. Kullanmayı sevdiğim şey sim bağlantıları. Bu yüzden, üretime "dağıttığımda" dağıttığım sürümün yeni bir çıkışını yaparım, yeni sürüme işaret etmek ve test etmek için simlink apache noktalarını güncellerim. Bir sorunum varsa, bağlantıyı sunucuda hala kontrol edilecek olan son çalışma kopyasına geri yüklerim. Anında geri dönüş. Bu problemi çözdüysen, IMHO'ya gitmen iyi olur.

+0

Ne yazık ki, web sunucusuna komut satırı erişimim yok, bu yüzden ben symlinks yapamıyorum. Benim Subversion hosting için Beanstalk - http://beanstalkapp.com/ kullanıyorum ve onlar web sunucusuna sürümleri itmek için harika bir araç var. Oldukça hızlı bir şekilde önceki bir revizyona geri dönmemi sağlıyor. – Sonny

+1

O zaman kulağa hoş geliyor. Sürecin çok yavaş. Yukarıdaki yorumlardan bazılarına yanıt olarak, taahhüt ettikleri ekipler/projeler için şubelere sahip olmayı tercih ediyorum ve daha sonra tam KG testinden sonra (kapalı görevlerin/hataların revizyon sayılarına dayanarak) gövdeye girmeyi tercih ediyorum. IMO gövdesi her zaman kararlı bir üretim sürümü temsil etmelidir. Bence bu konuda doğru yoldasın. –

2

Yaklaşımınız kulağa hoş geliyor, ancak aynı zamanda gelişmeyi sadece bagajda yapabilir ve test edildiğinde ve kararlı olduğunda etiketleyebilirsiniz. Ana gelişim için ayrı bir şube kullanarak ne kazanıyorsunuz emin değilim.

+1

Birkaç kişi tarafından önerildiğini gördüm. Sabit bir bagajı tutmak daha büyük takımlarla daha iyi ölçeklenmelidir. Önerdiğin gibi başladım, ama bu süreçte bilgelik gördüm, ben de değiştim. – Sonny

+2

@Sonny Ekip büyükse, şubelerdeki belirli özellikleri geliştirmek ve bagajda veya başka bir dalda hata düzeltmeleri gibi şeyler yapmak mantıklı olabilir. Bu, düzeltmeleri içeren, ancak geliştirme aşamasında olan özellikleri içermeyen bir sürüm oluşturma seçeneği sunar. Bununla birlikte, takım küçükse ve sürümleri yayınlamak için devam eden herhangi bir kodu atlamak isteyeceğinizi düşünmüyorsanız, bunu yalnızca gövdedeki gelişimi yapabilirsiniz. Durum değiştikçe bir yaklaşımdan diğerine geçebilirsiniz. – Alb

+0

Yaklaşımları değiştirme konusunda iyi nokta. Subversion bunu yapmak için oldukça basit! – Sonny