Subversion'u burada uygulamaya geldiğimizde kendime aynı soruları sordum - 4-6 projeye yayılmış yaklaşık 20 geliştirici. `` Cevap '' ile iyi bir kaynak bulamadım. Cevabımızın son 3 yılda nasıl geliştiğinin bazı bölümleri:
- yararlı olduğu kadar sık taahhütte bulunma; başarımız kural, yeterli iş yaptığınızda, değişikliklerin kaybolması durumunda bunu yeniden yapmak zorunda kalmanın bir sorun olacağını taahhüt eder; bazen her 15 dakikada bir taahhüt ederim, bazen de günler olabilir (evet, bazen 1 satır kod yazmak bir günümü alır)
- şubeleri, daha önceki cevaplarınızdan biri olarak, farklı gelişim yolları için kullanıyoruz; şu anda programlarımızdan biri için 3 aktif branşımız var: 1 ana geliştirme için, 1 henüz programı paralel hale getirmek için tamamlanmamış çaba için ve 1 XML girdi ve çıktı dosyalarını kullanmak için gözden geçirme çabası için;
- Etiketleri nadiren kullanıyoruz, ancak bunları üretime yönelik sürümleri tanımlamak için kullanmamız gerektiğini düşünüyoruz;
Gelişimin tek bir yolda ilerlediğini düşünün. Bir zamanlar veya geliştirme aşamasındaki pazarlama, ürünün ilk sürümünü yayınlamaya karar verir, böylece '1' (veya '1.0' veya ne var) etiketli yola bir bayrak yerleştirirsiniz. Başka bir zaman, bazı parlak kıvılcımlar programı paralel hale getirmeye karar verir, ancak bunun haftalar alacağını ve insanların bu arada ana yoldan devam etmek istediklerine karar verir. Böylece yolda bir çatal inşa edersiniz ve farklı insanlar farklı çatallardan aşağı inerler.
Yoldaki bayraklara 'etiketler' denir ve yoldaki çatallar 'dalların' bölündüğü yerdir. Bazen, şubeler tekrar bir araya gelir.
- depoya yürütülebilir (veya sistem) oluşturmak için gerekli tüm materyalleri koyduk; Bu, en azından kaynak kodu ve make dosyası (veya Visual Studio için proje dosyaları) anlamına gelir. Ancak simgeler ve yapılandırma dosyaları ve diğer tüm şeyler olduğunda, bu depoya girer. Bazı belgeler repoya giriyor; kesinlikle programa entegre olabilecek yardım dosyaları gibi herhangi bir belge yapar ve geliştirici belgelerini koymak için yararlı bir yerdir.
Hatta yazılım arayan insanlar için tek bir konum sağlamak için üretim sürümlerimiz için Windows yürütülebilir dosyaları koyduk - Linux sürümlerimiz bir sunucuya gidiyor, bu yüzden saklanmasına gerek yok.
- deponun her zaman derlenen ve yürütülen en son sürümü sunabilmesini istemiyoruz; bazı projeler bu şekilde çalışır, bazıları işe yaramaz; karar proje yöneticisine aittir ve birçok faktöre bağlıdır, ancak bir programda büyük değişiklikler yaparken kararın bozulduğunu düşünüyorum.