Kodumu sürüm kontrol altına almaya yeni başladım (çalışmakta olduğum laboratuarda, SVN ve kendi kodlarım github'da (tabii ki git ile). Sürüm kontrolünü kullanmadan önce, böyle bir şey yapardım. Sürüm numarası olan birçok klasörün içinde kütüphanenin adını taşıyan bir klasör vardı. Ne zaman yeni bir sürüm üzerinde çalışmaya başlamak istersem, son sürümün bir kopyasını çıkarır, adını yeni sürüme değiştirir ve uygulamaya başlardım.
Ancak bu, klasör sürüm kontrolü altına alındığında çok gereksiz görünüyor. Artıklık dışında, biri en son sürümü edinmek isterse, sadece sürüm import
/ sürümleri varsa tüm sürümleri indirir clone
.
Şimdi bunu sürüm kontrolü ile yapmanın birçok yolunu görüyorum, ancak yeni olduğum için hangisinin daha iyi olacağını bilmiyorum.
Yöntem 1: etiketleri kullanma
Etiketleri doğru anlamış olsaydım, ana şubenize sahip olurdunuz, ne gibi değişiklikler yapsanız onu bir versiyonla etiketlersiniz. Sonra, çalışan bir kopyasını almak istediğinizde, belli bir etiketi olanı elde edersiniz. (Yanlışsam düzelt)
Yöntem 2: Dallanma sürümleri
Bu yöntemde ana şube gelişim kolu olacaktır. Her şimdi ve sonra istikrarlı bir sürüm yapıldı (diyelim v1.2.0
), bu sürüm için bir dal oluşturup asla taahhüt etmiyorsunuz. Bu şekilde, belirli bir sürümü indirmek istiyorsanız, kodu bu daldan alırsınız. Asla taahhütte bulunmadığınızı söylememe rağmen, eski sürümün çalışmaya devam etmesi için hata düzeltmeleri yapmak ve eski sürümün şubesine söz vermek mümkün olabilir. Örneğin güncel sürümü ise v2.0
ancak kullanmak isteyen insanlar var v1.2
, aralarından başka bir şube alabilirsiniz v1.2
yani v1.2.1
ve hata düzeltmeleri yapmak veya tıpkı sürüm aynı tutmak v1.2
ve sadece hata düzeltmeleri taahhüt.
Böylece dallar şöyle görünür:
v1.2.1 v1.2.2
/ /
v1.0.0 v1.2.0--------- v2.0.0
/ / /
-------------------------------------- dev
Bu şekilde her küçük sürüm güncellemesi için şubeleriniz vardır. (Yukarıdaki grafikte, v1.2.1 ve v1.2.2'nin veya v2.0.0 yayımlandıktan sonra yaratıldığından, v1.2.0 ve v2.0.0 arasındaki gelişimin bir parçası olmadıklarını unutmayın. Eski sürümleri destek olarak düşünün)
Yöntem 3: Dallanma gelişimi
Bu yöntem öncekinin tersidir. Ana şube en son kararlı sürüm olacaktır. Ne zaman yeni bir sürüm üzerinde çalışıyorsanız, bir şube (geliştirme için) oluşturursunuz, kodunuz üzerinde çalışırsınız ve stabil olduğunda ana dalı ile birleştirirsiniz.
Bu durumda, dallar şöyle görünür:
________ ____ ________________ _____ dev
/ \/ \/ \/
---------------------------------- latest_version
Muhtemelen bu bir doğru etiketleri ile birlikte yapılması gerekiyor?
Soru!
Her neyse, sorum şu ki, deneyimlerinize dayanarak, bu yöntemlerden hangisi daha pratiktir? Orada bilinen en iyi yöntem var mı (muhtemelen kendimi çözemedim)? Bunlar genel olarak nasıl yapılır?