2012-10-31 24 views
9

Ekibimiz için bir sürüm kontrol sistemini değerlendiriyorum (1 ila 2 geliştiriciden) ve TFS 2012 sürüm kontrolünün birleşme ve dallanma açısından Mercurial ile karşılaştırmasını merak ediyorum. Büyük bir ekibimiz yok ve sadece ben ve belki başka bir geliştirici olabilir, bu yüzden bir DVCS'nin sunduğu güçlü bir dallanma/birleştirme yeteneklerine ihtiyaç duymayabiliriz. TFS 2012 sürüm kontrolü ile ilgili yetenekleri konusunda fazla bilgi bulamadım. Biri beni bir rehbere yönlendirebilir mi veya bazı özellikleri vurgulayabilir mi? Lütfen, sadece profesyonel sürümde TFS 2012'nin bağımsız sürümüne erişebileceğimizi unutmayın.TFS 2012 sürüm kontrolü vs Mercurial

Teşekkür

cevap

0

Önsöz:

Ben TFS ile herhangi bir şekilde ilgili değildir ve asla kullanılmış ediyorum

Yüz:

Yeni 'tfs2012' sorusu en en azından bazı (How to set up TFS to cater multiple projects to multiple clients, TFS 2012: Correllating binaries to builds and source code, TFS 2012 Disable Multiple Check-out not working), bize sorunlarını gösterir, Mercurial'da (bazen bazı eklenmiş harici araçlarla) () sorusunu asla düşünemiyorum. Fakat aynı zamanda, TFS'nin, Mercurial'in olduğu, tam SCM olarak değil, tam ALM aracı olarak konumlandırıldığını da anlayabilirsiniz. James McKay'den en yeni makale (Şubat 2011), ancak en azından bazı ifadeler hala geçerli, bence

"Team Foundation Server is the Lotus Notes of version control tools". dallanma-Birleşme

Tutar takım boy ile korelasyon gösterecektir sadece kısmen, ağırlıklı olarak gelişme tarzına bağlıdır, küçük bir ekip varsa geliştiriciler

+0

Şimdi blogu bulamıyorum, ancak 2012 için yeni özelliklerin üzerine çıkmış bir MS blogu vardı. DVCS'yi taklit etmeye çalışıyorlar, ancak çok iyi bir iş yapmıyorlar. Blogdaki yorumlar, onları deli gibi ve iyi bir sebeple yırttı. Şu anda TFS 2010 kullanıyorum ve Hg için daha az tercih ediliyor (bir süredir kullandım). Ne kullandığınız konusunda bir seçeneğiniz varsa, Hg'yi şiddetle tavsiye ederim. 2010 yılında TONS problemleri var ve bunların sadece 2012'de bazılarını hatırladığını hatırlıyorum. – Mario

+1

TFS 2012, DVCS'yi taklit etmedi, diğer VCS'nin zaten sahip olduğu yerel çalışma alanlarını hayata geçirdiler. DVCS özelliklerinin TFS'ye geleceğinden kuşku duyuyorum, çünkü onu barındırmak için tam bir SQL sunucusuna ihtiyaç duyuyor. Bununla birlikte, yerel çalışma alanı özelliğinin doğal bir devamı gibi görünen birçok yerel kontrol desteği ekleyebilirler. Yerel çalışma alanları, "tfs, sürüm kontrol araçlarının nilüfer notları" linklerinden, özellikle de SVN'ye kıyasla, bir dizi meseleyi ele aldı. – Betty

+0

@Mario: TFS 2012, DVCS'yi taklit etmeye çalışmıyor. Sanırım "yerel çalışma alanları" (önceki kontrol/düzenleme/kontrol modeline aykırı bir düzenleme/birleştirme/düzenleme modeli sağlayan) duyurularımızı karıştırıyorsunuz. –

0

alışkanlıkları, hiç şüphesiz Mercurial ile gitmek.

Mercurial, kullanacağınız özel geliştirme iş akışına göre hafif ve esnektir. Daha küçük takımlara çok daha iyi uyuyor, aslında herhangi bir idari yük getirmediği için yalnız bir devasa sığar.

Birleştirme gereksinimi hakkında, ima ettiğiniz gibi gerçekten gelişmiş bir özellik değil: çoğu (tümü?) Dağıtılamayan VCS'nin doğru olamaması çok temel bir özelliktir. Şimdi buna ihtiyacınız olmayabilir, ama eğer yaparsanız, oraya Mercurial'da sahip olacaksınız ve sadece işe yarıyor.

+0

TFS'nin GIT depoları için yerel destek eklediğini düşünüyorsanız (http://blogs.msdn.com/b/bharry/archive/2013/01/30/git-init-vs.aspx) Bence söylemek adil olur Küçük dev ekiplerin DVCS üzerinden merkezi bir çözümü tercih etmeleri için çok az sebep var. Merkezileşmiş hala bazı büyük organizasyonlarda yerini alabilir. – gnz

2

Önceki "cevaplar" biraz garip. TFS 2012'de dallanma ve birleştirme, hem GUI hem de komut satırı uygulamasıyla beklediğiniz gibi çalışır.

ALM Ranger Guidegüncellenen

+0

Bu 'cevap' ile ilgileniyorum. Hiç ikisini de kullandınız mı, eğer öyleyse nasıl benzer veya farklı? Hem birisini hem de TFS'yi seven birini hiç duymadım. Başka hiçbir şey kullanmayan birçok insandan, iyi için iyi olduğunu söyledim. Ayrıca bağlantınızın asıl kılavuza gitmediği görülüyor (alttaki indirme düğmesi 'belirtilen sürümde bulunamadı') – Mario

+1

Link güncellendi. Mercurial'ı hiç kullanmadım ama Git'i kullandım. TFS'nin dağıtılmadığı için bazı bariz farklılıklar vardır, bu nedenle elmalar arasındaki elmanın karşılaştırması gerçekten mümkün değildir. Ama dallanma/birleştirme yapmak istediğini yapar. Bir şube oluşturun, dalda çalışın, ebeveyn için kodu birleştirin. –

7

Mercurial dallanma bir kritik şekilde TFS farklıdır: Burada oldukça tamamen konuyu kapsayan iyi bir belgedir. TFS, şubelerinizi dosya alanının farklı bir bölümünde depolarken, Mercurial bunları tarihin kendisinde saklar. Bu, dallanma ve birleştirme ile ilgili sürtünmeyi büyük ölçüde azaltır. Örneğin, şu anlama gelir:

  • Şubeler, en sondan başka bir revizyona güncellemek, ardından bunun üzerine işleyerek, örtülü olarak oluşturulur. Şubeler, örtük olarak tekrar birleştirmek suretiyle de kapatılırlar.
  • Şubeler, her şeyden önce oluşturduğunuz şekilde örtülü olarak yeniden açılabilir.
  • Mercurial, dalları çok kolay bir şekilde yerinde değiştirmenizi sağlar. Ayrı çalışma alanı eşlemeleri ayarlamanıza gerek yoktur ve bir dizinden diğerine geçmenize gerek yoktur.
  • Şubeler anonim olabilir.
  • TFS'nin “temelsiz birleşmeler” (temel olarak doğrudan bir ebeveyn/çocuk ilişkisi içinde olmayan dallarla büyük sorunları olduğu anlamına gelir) vardır, ancak Mercurial'da böyle bir şey yoktur. Her bir dalın birbirinden ne kadar uzak ayrıldığına bakılmaksızın, iki revizyon arasında ortak bir köken bulmak her zaman mümkündür.
  • TortoiseHg'deki şubelerinizin grafik görünümü, proje geçmişinizle bütünleşir ve bu da dallanma ve birleştirme işleminin aslında ilk olarak nasıl çalıştığını anlamak için çok daha kolay hale gelir.

Küçük ekiplere veya tek başına geliştiricilere bile uygulanan birkaç dallanma ve birleştirme avantajı vardır. Böyle bir örnek, geliştirme aşamasında başka özellikleriniz olsa bile, üretim sisteminizdeki hataları düzeltebilmektir. Başka bir örnek, keşif ya da deneysel gelişmedir: eğer bir yaklaşım işe yaramıyorsa, başlangıçta kolayca geri dönüp ikinci, farklı bir yaklaşımı deneyebilir ve geri dönmeniz gerektiğinde orijinal yaklaşımı koruyabilirsiniz.

+0

Bu harika bir kayıt, açıklık için teşekkürler –