özet
Benim için sürüm yazılımını kullanmanın tek güvenilir yolu sürüm kontrol sisteminizden karma veya changeet tanımlayıcısını kullanmaktır .
Genel bir derleme sürüm numarası yararlı olabilir, ancak yalnızca bir derleme sunucunuz varsa ve / veya her sürümü imzalarsanız benzersiz olması garanti edilir. Birçoğumuz için bu geçerli değil.
Projeniz birden çok sürüm kontrol havuzuna bölünmüşse, kullanıcı arayüzünüzün her bağımlı havuzu sorgulayabileceği ve karma değerini kullanıcıya geri bildirebileceği bir mekanizma oluşturmanız gerekecektir.
Kişisel deneyimlerden örnek
Önceki bir işverendeki, (dahili) müşteri değiştirme yazılımımızla sorunları yeniden derlediğimiz ve derlediğimiz bir projede, cıva karmaları her bir uygulama ve kütüphaneye derlendi. Yazılım her başlatıldığında, tüm yazılım bileşenleri sorgulanarak bir revizyon dizesi oluşturuldu.
Bu düzeltme dizesi, yaklaşık sayfaya gittiğinizde görüntülenir ve uygulama her başlatıldığında günlük dosyasına yazılır. Şu şekildeydi:
Application name (6a72e7c61f54)
Library1 (b672a13a41e1)
Library2 (9cc35769b23a)
Library2 (9cc35769b23a)
Library3 (4e9f56a0186a+)
Library2 (9cc35769b23a)
Library4 (2e3b08c4ac76)
Library1 (b672a13a41e1)
Library2 (9cc35769b23a)
Bundan kolayca Library3'ü değiştirdiklerini ve depoda bu değişiklikleri yapmadıklarını görebiliyordum, bu yüzden kontrol edilmeyen bir kod kullanıyorlar. Ayrıca karmaları mevcut test sistemimle karşılaştırabilirim, böylece Library1'i daha eski bir sürüme geri döndürdüklerini belirleyebilirim.
Bu, bir hata bildirdiklerinde, sorunun oluştuğu sırada kullanılan kodu tam olarak yeniden oluşturabileceğim veya en azından kurulumu yeniden üretemediğimden emin olabileceğim anlamına geliyordu.
Kullandığım derleme sistemi, bunu nasıl başardığım, yaşadığım sorunlar ve insanların bunlardan kaçınmak için önerdikleri şeyler hakkında daha fazla bilgi için Stack Overflow sorumuna bir göz atın .
Not: Bu sistem, yalnızca belirli bir karmanın, belirli bir çalışma dizini bir dosya karışımı içerebiliyorsa, çalışma dizininizde aynı dosya kümesiyle (örneğin git ve mercurial) sonuçlanacağı garanti edilen bir revizyon kontrol sistemi kullanırsanız gerçekten geçerlidir. ve birkaç revizyondan (örn. svn) gelen dizinler, çalışma dizininin durumu ile ilgili tüm bahisler kapalıdır ve bu yöntem hiç çalışmaz.