Sürüm denetimi tamamlama geçmişini koruma ve Yeniden Düzenleme ve Belgeleme


11

Sürüm kontrol sistemi tarafından tutulan kayıt geçmişini kullanmak neredeyse hiçbir maliyeti yoktur. Bununla birlikte, büyük bir proje yeniden düzenleme (veya yeniden düzenleme / temizleme) çabası sırasında, işlevler ve sınıflar ve hatta ad alanları hareket ettirilecektir; bazen birkaç dosya birleştirilir ve diğer dosyalar bölünür. Bu değişiklikler genellikle birkaç dosyanın orijinal yürütme geçmişinin kaybolmasına neden olur.

Kişisel görüşüme göre, projenin organizasyonunun sürdürülmesi kaynak kodu geçmişini tutmaktan daha önemlidir. İyi proje organizasyonu, yeni özelliklerin makul çabayla sürekli olarak eklenmesine izin verirken, kaynak kodu geçmişinin değeri şüpheli görünüyor.

Ayrıca, birim test kullanımı ile regresyon sorunları hızla tanımlanır. En son sürüm tüm yazılım gereksinimlerini karşılamaya devam ettiği sürece, aslında kaynak kodun geçmişini korumamız gerekir mi?

Müşterilere büyük bir sürüm yükseltmesi gerektirmeden destek sağlama ihtiyacı nedeniyle, gönderilen herhangi bir kaynak kodunun korunması gerektiğini anlıyorum . Ancak bunun dışında, kaynak kodun geçmişini tutmanın bir değeri var mı?

Kaynak kodu işlem geçmişi ekip üyeleri arasındaki iletişimde herhangi bir rol oynuyor mu? İşlem geçmişini kaldırır, bunun yerine iletişim için "kaynak kod" + "birim test koduna" güvenirsek ne olur?

Taahhüt tarihinin varlığı, büyük tasarım / gereksinim değişiklikleri ve bu değişiklikleri yönlendiren düşünce akışları gibi proje hakkında önemli bilgilerin uzun vadeli dokümantasyonu hakkında bir şikayette bulunuyor mu?


3
Hangi kaynak kodu sistemini kullandığınıza bağlı olarak, sürüm geçmişi dosya taşıma işlemlerinde ve ne olursa olsun korunur. Silinen dosyaların geçmişine de erişilebilir olmalıdır. Ve sonuçta önemli olan nihai sonucun tarihi. X sınıfı, Y ve Z sınıflarının bir kombinasyonu olabilir, ancak tarih size bunu söyleyecektir (özellikle iyi giriş yorumlarınız varsa) ve yine de orijinallere geri dönebilirsiniz. Burada bir şey mi eksik?
Adam Lear

1
These changes often lead to the loss of the original commit history of a few files.Örneğin "git suçu" na bir göz atın - hiçbir şey kaybolmaz. Bazen bulmak biraz zor olabilir, ama her zaman oradadır.
maaartinus

1
Büyük bir yeniden düzenlemede, kaynak kontrol güncellemelerini düşünmek ve planlamak biraz zaman almaya değer. Genellikle minimal veya küçük bir ekstra çaba ile çok daha fazla bilgi korunabilir. örneğin bir dosyayı 3 parçaya ayırırsanız, önce orijinalin 3 değiştirmenin her birine kopyalanmasını koruyun; daha sonra üç değiştirmeyi taahhüt eder ...
UuDdLrLrSs

Yanıtlar:


5

Tamamlama geçmişini "yapılan değişiklikler" veya "düzeltilen hata" türünde yorumlardan daha fazla kullanmak için, sorun izleme sisteminize bağlı olmalıdır. Her değişikliğin, her taahhüdün onunla ilişkili bir sorunu olmalı, böylece neyin, kimin ve neden değiştiğini biliyorsunuz.

En son sürüm tüm yazılım gereksinimlerini karşılamaya devam ettiği sürece, aslında kaynak kodun geçmişini korumamız gerekir mi?

Yeterince karmaşık yazılım nadiren tüm gereksinimlere sahiptir ve tüm hatalar birçok nedenden dolayı sabittir, bu yüzden buradaki iddianızın iyimser olduğunu düşünüyorum.

Programınızın 7.8 sürümünde olduğunuzu varsayalım. Ancak, sahada 1.6, 2.2, 2.8 ve benzeri gibi 12 farklı aktif sürümü destekliyorsunuz. Bunların her biri çeşitli nedenlerle en son sürüme yükseltilmeyecektir, bu yüzden hepsini hata düzeltmeleriyle destekliyorsunuz. Bir müşteri en son 7.8 sürümünüzde bir hata bulur. Bunu 7.8 'de düzeltirsiniz. Diğer sürümlerin kaçının düzeltilmesi gerektiğini nasıl anlarsınız? Kaynak geçmişi ve sorun izleme olmadan yapmazsınız.


7

kaynak kod geçmişinin değeri şüpheli görünüyor.

Mühendisler neden bir şey olduğu gibi cevaplar arıyor kaynak kodu içine birkaç yıl geri gittik . Bazen bir şeyin zaman içinde evrimleşme biçimi bir hatayı anlamak için önemlidir, ancak bir şeyleri belgelerken (hatta zorunlu olarak belgelenebilir) genellikle düşünülen bir şey değildir.

Ayrıca, kaynak kodu geçmişini korumak için çok iyi yasal nedenler olabilir. Yapmam gereken (kaynak / SCM mühendisi olarak) çoğu kaynak kodu çöplüğü dalışı şirketimin hukuk departmanının isteği üzerine oldu.


1
Şahsen, tarihe hiç bakmak nadir olmakla birlikte, ihtiyaç duyulan durumlarda bunu yapabilmenin son derece değerli olduğunu görüyorum. Bu yüzden pratik olduğunda tarihi korumayı tercih ederim.
UuDdLrLrSs

3

En son sürüm tüm yazılım gereksinimlerini karşılamaya devam ettiği sürece, aslında kaynak kodun geçmişini korumamız gerekir mi?

Ancak bunun dışında, kaynak kodun geçmişini tutmanın bir değeri var mı?

İkisine de evet. Bir şeyin ne zaman, kim tarafından ve neden değiştirildiğini bilmek faydalı olabilir. Geçmişinizi kaybederseniz, bunu yapma yeteneğiniz etkilenir.

Kaynak kodu işlem geçmişi ekip üyeleri arasındaki iletişimde herhangi bir rol oynuyor mu? İşlem geçmişini kaldırır, bunun yerine iletişim için "kaynak kod" + "birim test koduna" güvenirsek ne olur?

Evet öyle. "Kaynak kodu" + "birim test kodu" tek yaklaşımı size kimin / ne zaman / neden olduğunu söylemez.

Taahhüt tarihinin varlığı, büyük tasarım / gereksinim değişiklikleri ve bu değişiklikleri yönlendiren düşünce akışları gibi proje hakkında önemli bilgilerin uzun vadeli dokümantasyonu hakkında bir şikayette bulunuyor mu?

Sanırım öyle diyebilirsin. Ancak birkaç geliştirici, gereksinimler / tasarımdaki değişiklikleri tamamen belgelemektedir. Ve kesinlikle neredeyse hiç kimse ilk gelişimi veya sonraki değişiklikleri yönlendiren düşünce akışını kaydetmiyor. İşlem geçmişine (ve özellikle işlem günlüğü iletilerine) sahip olmak ve sorun / hata izleme sistemine çapraz bağlantılar en azından size bir şeyler sağlar. Ve bu hiçbir şeyden daha iyi ya da bir dizi yayın anlık görüntüsü.


1
+1 Ayrıca, iletişim koduna güvenmek, tarihte olacak bilgilerin DRY'yi ihlal ederek yorumlarda da mevcut olduğu anlamına gelir.
Larry Coleman

1
@Larry - doğru. Ancak gerçekte, sorun çok fazla (veya çoğaltılmış) bilgi yerine çok az bilgi kaydedilmiş olabilir.
Stephen C
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.