Büyük görevler için iyi kaynak kontrolü check-in stratejileri nelerdir?


9

Genel kural, check-in'leri küçük ve sık sık check-in yapmaktır. Ancak bazen görev, altta yatan çerçevede büyük değişiklikler yapılmasını gerektirir. Ardından, görevi tamamlamadan önce check-in işlemi bitirdiğiniz işi teslim edene kadar projeyi kesecektir.

Peki, insanlar iş kaybetme veya yaptığınız bir şeye karar verme riskini azaltmak için hangi stratejileri kullanıyorlar, yanlış yaklaşım, sonra kodu kaldırdıktan ve başka bir yaklaşım denedikten sonra fikrinizi değiştirmek mi?

Yapabildiğim zaman, yapılan işin yarısını yorumlayacağım, ya da derlerse ve hiçbir şey yeni dosyaları kullanmıyorsa, onları kontrol edeceğim. herşeyin tekrar çalışmasını sağladığımda. Kaynak kontrol sisteminin izin verdiği diğer bir seçenek ise temel olarak küçük dallar olan raf setleridir. Gün için bitirdiğimde veya bir karar noktasına geldiğimde, değişikliklerimi rafa alacağım ve sonra felaketli bir şey olursa ya da o noktaya geri dönmek istiyorum.


Hangi kaynak kontrol sistemlerini biliyorsunuz?

@Thorbjorn: Svn, Perforce ve Team Foundation Server. Hepsi artıları ve eksileri var
Dominique McDonnell

Yanıtlar:


13

Git kullanıyorum, bu yüzden cevabım "şube". Şube ve çeşitli bitleri tamamlarken parça yemek taahhüt.

Mutlu olduğunuzda taahhütlerinizi yukarı doğru itin, böylece iş arkadaşlarınız bagajı bozmadan değişiklikleri gözden geçirebilir.

Herkes koddan memnun olduğunda, birleştirme ve işiniz bitti!

(Nispeten uzun süren dallar için yapmaya eğilimli olduğum şey, gövdeyi periyodik olarak dalımı (git terminolojisinde usta) birleştirmektir, bu nedenle iki dal çok radikal olarak ayrılmaz.)


1
Sen "git kullan" ile kalifiye olmak zorunda değilsiniz - Cevabın tam durmak olduğunu öneririz. Bununla birlikte, anahtar, özellik dalının bagajla güncel tutulmasını sağlamaktır, bu da bagajdaki değişikliklerin sık sık birleştirilmesi ve makul olması anlamına gelir.
Murph

Dallanma ile dallanma kullanmadım, ama git'e dallamanın çok daha kolay olduğu söylendi. Önemsiz olmayan bir özelliğim olduğunda şubeye giriyorum. Görünüşe göre, bu yıkım ile pratik değil, bu yüzden kalifikasyonum. Aslında kalifiye olmam gerekmediğini duyduğuma sevindim.
Frank Shearar

Bu nedenle, temel olarak en iyi strateji, görevin boyutu önemsiz olur olmaz dallamak ve gövdenin normal bir ödeme gibi tutmak için gövdeyi şubeye birleştirmek ve kaynak kontrolünün faydalanmasıdır. ara aşamalar.
Dominique McDonnell

1
@Dominic Temel olarak, evet, ama "bir boyut hemen önemsiz değil" demek istiyorum "bir akrabanın hemen görebileceği tek bir satırdan daha fazla şey doğru veya yanlış".
Frank Shearar

3

Cevabın, kullandığınız sürüm kontrol sistemine bağlı olarak değişeceğini düşünüyorum: merkezi (örn. Yıkılma) veya dağıtılmış (örneğin git). Dağıtılmış bir kaynak kontrol sistemi kullanma konusunda gerçek bir dünya deneyimim yok, bu yüzden cevabım yıkımla ne yaptığımıza dayanıyor.

Gövde yapımızı bir süre boyunca kıracak veya takımın geri kalanını başka bir şekilde gerçekten bozacak büyük bir değişiklik varsa, bir şube oluşturacağız. Ben bunu yapmak zorunda önlemek için yapabildiğiniz kadar çok olsa gerektiğini söyleyebilirim - çoğu değişiklik az çaba ile kod geri kalanı ile yan yana oturabilir. Örneğin, kod kodlarını yeni koda tetikleyebilirsiniz (basit if ifadeleriyle veya DI çerçevesi kullanıyorsanız yeni sürümleri yapılandırma ayarlarına göre enjekte edebilirsiniz). Ardından, yapılandırmayı yeni sürüme değiştirin, her şeyi test edin, kullanılmayan kodu silin, tekrar test edin ve son olarak yapılandırma ayarını silin. Bunu her zaman yapamazsınız, ancak bir şubenin bakım masrafı nedeniyle, bunun mümkün olup olmadığını her zaman kontrol etmeniz gerektiğini düşünüyorum.

Şube yaparsanız, insanların sık sık gördüğüm yanılgısının dallarını gövde ile güncel tutmak olmadığını düşünüyorum. Gövdedeki değişiklikleri şubenizde sürekli olarak birleştiriyor olmalısınız, böylece her şeyi geri birleştirmeyi bitirdiğinizde tekrarlamak oldukça önemsizdir.


2

Ekip dışında yıkım kullanıyoruz ve normalde doğrudan bagajda küçük değişiklikler yapıyoruz. Daha büyük görevler için, üzerinde çalışan geliştirici tipik olarak, yapıldıktan sonra bagajda birleştirilen özel bir dal oluşturur. Ardından özel şube silinir. Doğal olarak, özel şube mevcutken, sahibi sık sık kontrol etmelidir.

Uzun ömürlü dallardan ve gövde-dal birleşmelerinden kaçınmaya çalışıyoruz, çünkü bu dikkatli bir defter tutma gerektirir. Bunun yerine, sadece bir kez gövdeye geri getirilen ve kısa bir süre sonra silinecek nispeten kısa ömürlü şubelerimiz var.

Ve en az bir kişi değişiklikleri gözden geçirip onaylayana kadar bagajda hiçbir şey yapılamayacak veya birleştirilemeyecek bir kurala sahibiz.


0

Tıpkı SQL Server kullanıcılarından gelen her zamanki yorum gibi

Eğer yapabilirseniz, işinizin küçük checkin'lerini uygulamaya devam edebilmeniz için kod üzerinde bir şube oluşturmanızı öneririm. Tamamlandığında, ana gövdeye birleştirme gerçekleştirin.

Evet, bu çabayı tekrarlamak için bir şans var. ama en azından geri dönebileceğin bir iş izini koruyacaksın, bu bir çıkmaz yol olduğunu kanıtlıyor.

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.