Uyarı: Bu yazıdan beri Mercurial'ı buldum ve SVN'den çok daha iyi seviyorum. Bu yüzden bu yazı Pro SVN yorumları ve genel DVCS karşıtı yazılarla biraz güncel değil, ancak anti-git olayları hala geçerli
Git'in üzerindeki SVN hayranıyım .
Neden? Çünkü SVN, tek bir geliştirici veya küçük ekip için çok daha kolaydı ve git (özellikle msysgit) beni ağzımda kötü bir tada bıraktı.
Küçük bir dükkanda staj yaparken Windows'ta git ile tanıştırıldım. Hemen Github ile çalışabilmesi için harcadığı işi hemen fark ettim. İlk önce, bir ssh özel anahtarı oluşturmak, genel anahtarı Github'a yapıştırmak, sonra yarışmaya çıkarmak ve basmak istediğimde özel anahtarımı açmak zorunda kaldım, ki bu çok can sıkıcıydı.
Ve ben hiçbir zaman tüm depoyu aşağıya çekmekten hoşlanmadım. Asla büyük bir şeyle çalışmadığımı itiraf edeceğim, ancak tüm depo ve revizyonları HD'mde olsa, KDE'nin Git'teki deposunu indirmekten korkardım.
Sonra bir taahhüt yapmak için kafa karıştırıcı bir süreç vardı. TMK, ilk önce yapmak istediğim tüm dosyaları "aşamalandırmak" zorunda kaldım (birçok dosyaya sahip olduğunuzda emildi, her şeyi aşamalandırmak için el ile komutu bulmak için biraz zaman aldı), sonra işlemi yapın, sonra ana ekrana basın. repo (neden bu ayrı bir işlem ?!).
Ayrıca (!) Çok yardımcı olmayan taahhüt verisine sahiptiniz. Ah, bak bu 14f74433245ae17aeeaa ağacının bir parçası 2167a4934d0a4a7db0de ve ebeveyn d7042abb4821d3faf600. Bu ne anlama geliyor? İşleri çok hızlı bir şekilde çözebilmeliyim ve bazı tuhaf belgelere başvurmam gerekmeyecek.
Belgelerden bahsetmişken, en azından onu kullanırken, her şey linux man dosya biçiminde, IE kafa karıştırıcı ve bana işe yaramaz görünüyordu. Dokümanlarda çok fazla yardım bulamadım ve google'a başvurdum.
Taahhütlerde sevmediğim tek şey sürüm numaralarının olmamasıydı. Şimdi bunun git tasarımı yüzünden olduğunu biliyorum, ancak herhangi bir yazılımın sürüm numarasına ihtiyacı var. İşaretçinin "1.8.6 olarak değiştirildi sürümü" veya benzeri bir şey söyleyerek ortaya çıkacağını hala hatırlıyorum, ancak yine de yapı numaraları yapamıyorsunuz. 1.8.6.5164 sürümüne sahip olmak benim için (son kısım revizyon numarasıdır) bana 1.8.6'dan çok daha fazlasını ve küçük bir şeyin değiştiğini söyleyen bir notu anlatıyor, dene
Yazılıma özgü olan Windows'taki temel program, korkunç bir arayüz olan msysgit'tir. Bana birkaç kez kilitlendi, korkunç bir arayüze sahipti ve CLI-GUI entegrasyonu en iyisi değildi. Çevremdeki komut satırı bağımlıları gui'den daha çok nefret ediyordu.
Şimdi SVN'ye bakalım. Ve ben Windows'tayken ve özellikle TortoiseSVN ve Google Code gibi bir google hesabım olduğundan.
Öncelikle, depodaki her şeyi yapmak için komple kabuk entegrasyonu (ve sizin için linux insanlar için RabbitVCS aynı şeyi yapar), ana GUI'ye gerek yok. Bir havuz almak bir ödeme yapmak kadar kolaydır, hiçbir SSH'ye gerek yoktur (Github'un çekimler için SSH gerektirip gerektirmediğini hatırlayamıyorum) ve HD'nizde oturmuş bütün bir taahhüt yok.
Taahhüt etmek aşırı derecede kolaydır, çünkü SSH veya evreleme gerekmez. Sadece çok yararlı olan tüm dosyaları seçerek msysgit versiyonumda mevcut olmayan seçeneği seç, bir onay mesajı yaz ve onaylamayı tıkla. Google Kodu daha sonra giriş bilgilerinizi (çoğu müşterinin depoladığı) ve yaptığınız işlemi ister. Basit, kolay ve SSH yok
Sürüm numaraları? Bazı kolay kodlarla, tüm ödemelere sürüm numarası ve taahhüt numarası ekleyebilirsiniz; bu da işleri çok daha kolay hale getirir. Ayrıca, gerçekten değişiklik gösteren kullanılabilir sürüm numaraları elde edersiniz, örneğin 1.8.6.5165, 1.8.6.5164'ten daha yenidir.
Belgeler? Söylemesi zor. Kaplumbağa belgelenmiştir ancak resmi belgelere bu kadar uzun zamandır yargılayamayacağım. Basit bir intro kılavuzu okumak benim için yeterliydi.
Birleşme, karşılaştıramayacağım başka bir şey. Üzerinde çalıştığım bir dosyada bir başkası değişiklik yaptığında ama hiçbir zaman SVN'de olmadığında Git'te bir kez yapmak zorunda kaldım.
Hangisini tavsiye ederim? Eh, büyük takımlarda, git, doğrusal olmayan gelişim döngüsünde, avantajlarına sahiptir. Başka bir projede 4 programcının ayrı dallarda başladığını, ardından tüm kodu bir şekilde son ana dalda işleyen çok garip şekillerde birleştirdiğini gördüm. Github ve msysgit, gerçekten sevdiğim tüm proje için gerçekten güzel bir görselleştirme aracına sahipti.
Tek geliştirici veya küçük ekip projeleri için, SVN en iyisi olacaktır, çünkü Gits özelliklerinin çoğu kullanılmaz ve yalnızca olumsuz kısımlarını alırsınız. Sadelik böyle güzel bir şey