Ortalama bir şirketteki büyük bir proje için hangi kaynak kontrolüne ihtiyacım var? [kapalı]


10

Git'in açık kaynaklı projeler için harika olduğunu biliyorum. Ama merak ediyorum: 1 yıllık bir projede çalışan 20 programcılı bir şirket için hangi kaynak kontrol sistemi isteniyor? Duyduğum kadarıyla Git çekmeyi kullanıyor; ana bagajdaki değişikliklerinizi almak için bir başkasına gitmeniz istenmekten daha az olmaz mı? Özellikle herkes aynı anda çalışırken?

Bu sadece merak ettiğim bir örnek. SVN'yi nasıl kullanacağımı biliyorum, ancak son işimde bile projelerimizde kullanmadık, çünkü her şey PHP'de yapıldı ve bunlar genellikle 1 haftalık bağımsız projelerdi. Sadece yerel kodum için SVN vardı ve başkaları ile kullanmak zorunda değildi.

Peki iyi kaynak kontrolleri nelerdir ve özellikle bunun için neden iyidir?


13
Php kod çünkü VCS kullanmak için bir neden değildir.
Chris

@Chris: Bana kalırsa ağda bir repo olurdu. Ama maalesef bu şirket hiç kullanmadı. Sadece kaynak kontrolü ile 'takım' deneyimim olmadığını söylüyordum


Yanıtlar:


29

Ekibinizin rahat ettiği her şeyi kullanın. Tüm Sürüm Kontrol sistemleri kabaca aynı şeyi benzer şekillerde yapar; tekerleği yeniden icat etmek için bir neden yok çünkü "daha iyi sonuç verebilir". Ekibiniz herhangi bir şeyden rahatsız değilse, ekibinizin standart IDE'si ile en kolay entegrasyona sahip seçeneği seçin.


1
Bu akıllı ve partizan olmayan bir cevap - hoşuma gidiyor.
Murph

1
+1 kaynak kontrol sistemleri yeterince karmaşıktır, bunu en aza indirmek için yapabileceğiniz her şey daha iyi olacaktır!
Dal

3
Dağıtılmış VCS'lerin merkezi olanlardan çok daha iyi yaptığı şeyler vardır ve her zaman merkezi bir DVCS kullanabilirsiniz, bu nedenle uzun süreli genel amaçlı kullanım için Git veya Mercurial'ı tavsiye ederim. Bu gibi durumlarda, makul derecede modern VCS iyi bir şekilde çalışacaktır ve Subversion muhtemelen öğrenmesi en kolay olanıdır.
David Thornley

Kesinlikle ekibinizin bildiği veya rahat ettiği her şeyi kullanın. (CVS veya RCS olmadığı sürece.) Yeni bir şeye geçerseniz ve herkes bunu öğrenmek zorundaysa, matematik yapın: 20 kişi * 3 saat eğitim * 40 $ / saat = 2.400 $.
Barry Brown

Veya 5 dakika içinde yeni bir VCS'yi yetkin bir şekilde nasıl alacaklarını bilmelerini bekleyin ...
alternatif


4

Bence hangi desteğe ihtiyacınız var.

Bir problemim olduğunda zamanımı eğlenceli projelerim için evde git kullanıyorum, ancak düzeltmek için neye ihtiyacım olduğunu öğrenmek için zaman harcayabilirim.

İş yerinde Perforce kullanıyoruz çünkü 7/24 teknik desteğe sahip olmak zorunludur. New York, Almanya, İrlanda ve Japonya'da her zaman kod üzerinde çalışan insanlar var. Bir sorun varsa en kısa zamanda bir cevap almamız gerekir. Deneyimlerime göre Perforce halkı gerçekten ne yaptıklarını biliyor ve önerilere açık.


1
+1: Performans pahalı ama sizin için ne ödeme olsun.
Kimse

3

Bu sorunun geniş olduğunu ve BT çerçevenize ve ağ / geliştirme yapılarınıza dayalı olarak şirket bazında adres olması gerektiğini düşünürken, kaynak / sürüm kontrolünü seçmenin en önemli yönünün kullandığınız uygulama olmadığını düşünüyorum, ancak kullanımının pratik olarak yapılandırılıp uygulanmadığı.

Kullanımın yapısı ve uygulanması, sürüm kontrolünün en önemli yönleridir.

Önceden plan yapın ve herkesi gemiye alın. Kullanımı zorunlu kılın. Sadece programcılarla değil, projelerle ilgili her şeyle (belgeler, resimler vb.).

SVN iyi bir uygulamadır ve birçok eklenti (hata / görev izleme dahil) ile entegre edilebilir, ayrı bir sunucuya ihtiyaç duymaz ve ücretsizdir!

@EricBoersma'nın dediği gibi başka iyi kaynak kontrol uygulamaları da var:

Ekibinizin rahat ettiği her şeyi kullanın.

Sadece süreçleri ve en iyi uygulamaları yerine getirin ve onu uygulayabilenlerden satın alın.


3

Git'in nasıl çalıştığı hakkında bazı büyük yanılgılarınız var. Bir kapı bekçisine bir çekme isteği göndermek, bunu yapmanın yalnızca bir yoludur. Tam olarak svn gibi, bunu ayarlamak için pek çok yol var, ki bu tam olarak kaç kişinin özelleştirmek için yeterince rahat olmadan önce başlıyor. Git gibi bir DVCS ile, kaynak kontrolünüzü iş akışınıza göre yapılandırmak için yeterli değil, tam tersi.


2

Kaynak kontrolünün sadece bir araç olduğu ve ürünlerin her birinin aşağı yukarı aynı şeyi yaptığı görüşündeydim. Ve sonra bu dağıtılmış sürüm kontrol sistemlerinin noktası benimle tıkladı.

Dağıtılmış sürüm kontrolü birden fazla merkezi depoya sahip olmanızı sağlar. Yerel geliştirici veri havuzundan, özellik veri havuzuna, ürün veri havuzuna, KG deposuna ve son olarak serbest bırakılan veri havuzuna taşınan kod değişikliklerini hayal edin.

Şahsen Hg'ye dayanan Fırın adı verilen ticari bir ürün kullanıyorum, ancak temel özellik dağıtılmış sürüm kontrolü . Yeni kodun geliştiriciden piyasaya sürülen bir ürüne akışında devrim yaratıyor.


Bu bir proje için bir sürü depo. Birleşme için ne kabus.
JBRWilkinson

3
SubVersion veya CVS ile birleşiyorsa size katılıyorum. Bu dağıtılmış sürüm kontrol ürünlerinin çalışmasının nedeni, birleştirmeyi basit ve büyük ölçüde çatışmasız hale getirmeleridir.
Michael Shaw

2

SVN'yi nasıl kullanacağınızı biliyorsunuz, sonra SVN'yi kullanıyorsunuz - sadece ihtiyacınız olan bir şey varsa DVCS'ye geçin.

Gerçekten önemli olan, kullanmak isteyeceğiniz, kullanımı kolay bir şey kullanmanızdır. Martin Fowler, VCS'ler hakkında hızlı ve basit bir anket yaptı , sonuçlar çok ilginç.


2

Ben benzer büyüklükte bir proje (15 geliştirici, 18 aylık proje) üzerinde çalıştığımız son işime git kurdum ve iyi çalıştı.

Kurma şeklimiz:

Merkezileştirilmiş yetkili git sunucumuz olan bir git sunucumuz vardı. Takım üyelerinin birbirlerinden doğrudan çekilmeleri istenmedi, böylece tüm değişiklikler merkezi sunucuya girdi.

Her bir sürüm için etiketlerle birlikte ana dalı ana üretim dalı olarak kullandık. Projedeki her modül bir git alt modülüydü. Her alt modülün her takım üyesi için şubeleri vardı. Her alt modüle bir koruyucu (genellikle orijinal yazar) atandı ve diğer ekip üyelerinden çekme taleplerini ele almaktan ve hazır olduğunda ana şubedeki alt modülü güncelleyecek olan ekip liderine çekme talepleri yapmaktan sorumluydu. üretim koluna entegre edilebilir. Belirli bir özelliği tamamlayan veya bir sürüme karşılık gelen taahhütleri tanımlamak için etiketleri kullandık.


0

Team Foundation System'a (TFS) Microsoft'tan en azından iyi bir görünüm verirdim. Bir Microsoft mağazası olmadığınızı yorumlarınızdan alıyorum. Bununla birlikte, benim anlayışım, IDE'yi geliştirme için kullanırsanız, oldukça sağlam bir Eclipse eklentisi olmasıdır.

Birleştirme ve dallanma mekanizmaları diğer kaynak kontrol sistemlerinden herhangi biri kadar iyi çalışır (svn'den daha iyi, deneyimime göre ve yaklaşık olarak performans kadar iyi), ancak gerçekten parlayan şey, ürünün proje izleme ve proje yönetimi yönleri ve derlemeler ve dağıtımlar için yerleşik otomasyon.

Web tabanlı bir uygulama yazıyorsanız, otomatik kullanıcı arayüzü test çerçevesine ve oldukça kısa sırayla oluşturabileceğiniz ve yapılandırabileceğiniz yük testi çerçevesine bakın. Şık bir özellik: yük testi için yerleşik mobil tarayıcıları simüle eder.


Eclipse'den TFS kullanan biri olarak konuşmak. Hayır bu korkunç. (detaylara gidebilirim), kesinlikle sağlam demezdim. TFS harika, ama Eclipse uzantısı şok edici derecede kötü (Visual Studio için AnhkSVN olarak harika)
Lyndon White

Microsoft ortamında çalışmama ve genel olarak .Net ve Ms araçlarını sevmeme rağmen TFS'nin birçok nedenden dolayı çok, çok kötü bir deneyimim var. TFS'yi kimseye tavsiye etmem.
17'de
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.