Yalnız bir geliştirici için DVCS kullanmanın avantajları var mı?


19

Şu anda sunucumda görsel svn kullanıyorum ve kişisel makinemde ankhsvn / kaplumbağa var. Yeterince iyi çalışıyor ve değiştirmek zorunda değilim, ancak bir DVCS kullanmanın bazı faydalarını görebiliyorsam, bir şans verebilirim.

Ancak, başkaları olmadan kullanmanın bir anlamı veya farkı yoksa, rahatsız etmeyeceğim.

Tekrar soruyorum, tek geliştirici siz olduğunuzda DVCS kullanmanın faydaları var mı?


1
Stackoverflow'daki benzer gönderiye bakın: stackoverflow.com/questions/179161/… . Bilmeniz gereken her şey orada güzel bir şekilde özetlenir.
ysolik

Bu yüzden sorum şu şekilde aynen kopya olarak kapandı. Ne yazık ki bu soru bana cevap vermiyor. Yalnız bir geliştirici olduğunuzda ustadan itip çekiyor musunuz, yoksa dallanıyor ve birleşiyor musunuz?
Yalnızken

1
yedekler aslında sadece başka bir klon. Bir gün çok önemli olabilir. Ayrıca git takım svn öncesinde ışık yılıdır.

Hiç sunucunuzdan uzakta bir dizüstü bilgisayarda çalıştınız mı?
JBRWilkinson

Yanıtlar:


19

Evet! Bence en büyük fayda, birçok DVCS tarafından sunulan daha iyi dallanma + birleştirme desteğidir. Dallanma ve birleşme SVN'deki kıçta bir tür acıdır; hızlı özellik eklemeleri, hata düzeltmeleri veya deneyler için küçük, kısa ömürlü dallar yaratmanın zamanına değmeyecek kadar can sıkıcıdır, ancak birleştirme de uzun ömürlü dallar oluşturmak için bir acı olacak kadar can sıkıcıdır. Öte yandan, Git'te dallanma ve birleşme bir esinti, o kadar çok çalıştığım her hata düzeltmesi veya özelliği için (yerel) bir şube oluşturuyorum.

Git'in depoları görselleştirme, grepping günlükleri vb. İçin sunduğu araçların SVN'den çok daha iyi olduğunu düşünüyorum (bu bir DVCS'ye özgü olmaktan ziyade bir Git olayı).

DVCS ayrıca merkezi bir sunucu gerektirmez; SVN'yi geliştirici olarak kullanırken, her repo tam geçmişi içerdiğinden, Git için bir zorunluluk olmayacak şekilde yerel bir repo oluşturmanız gerekir. Bir sonuç olarak, bir repoyu arşivlemek sadece projenizi sıkıştırmakla ilgilidir - yedeklenecek bir "merkezi veritabanı" yoktur.

Git'i neredeyse dört yıl önce SVN'yi bir süre kullandıktan sonra kullanmaya başladım ve geriye bakmadım.



4
Orada DVCSs bir görünümüdür yok daha kolay birleştirme yaparak ancak DVCS kullanıcıların daha gerçekleştirerek birleştirme yürürlüktedir söyledi. Bu, birleşmelerin öznel görünümünü kolaylaştırır. Elbette önemli olan öznel görüştür.
Richard

3
DVCS münhasıran git'e eşit değildir
Murph

6
@Richard Ama bu yanlış, merkezi araçlar karmaşık birleştirmeleri iyi desteklemeyen doğrusal bir geçmişe sahip olma eğilimindedir.
alternatif

2
@Murph: Bu doğru, ama Git kullanıyorum, bu yüzden benim örneğimde kullandım.
mipadi

7

Kendi kişisel eşyalarım için bir DVCS kullanıyorum. (Ben $ HOME git git o adamlardan biriyim .) Birkaç avantajı vardır:

  • Dizüstü bilgisayarım ile masaüstü bilgisayarları ve laboratuvar bilgisayarları arasında çoğaltmayı gerçekten kolaylaştırıyor. Bu SVN için de geçerli olsa da ...
  • İnternet erişimim olmasa bile dizüstü bilgisayarda çalışabilirim.
  • Yedeklemeler bir kadar basittir git pull.
  • Ben kullanabilirsiniz git citoolben işlemeye karar vermeden önce ilgisiz bir çok değişiklik yaptık bile, mantıksal olarak boy kaydedilmesini içine bir çok değişiklik kırmak için. Subversion'da bunu yapacak bir aracın farkında değilim.
  • Açık kaynaklı bir projeyi yamalamak zorunda kaldığımda, proje dizininde yeni bir git deposu oluşturarak işleri düzenli tutmak, yamaladığım kaynak ağacın ikinci bir kopyasını yapmaktan daha kolaydır. (Bunu Subversion ile kolayca yapamazsınız çünkü sabit diskinizde tamamen başka bir yerde ayrı bir depoya ihtiyacınız vardır.)
  • Diğer insanlardan aldığım revizyonları kontrol etmek için kolay dallanma özelliklerini kullanıyorum. Örneğin, danışmanımla bir konferans belgesini düzenlediğimde, depoya erişimi olmamasına rağmen, ona kağıdın bir kopyasını gönderebilir ve gönderdiğim sürüme göre bir şubedeki revizyonlarını kontrol edebilirim ve daha sonra git mergerevizyonlarını bu arada yaptığım herhangi bir şeyle birleştirmek için kullanın .

Git beni Subversion'dan çok daha fazla, mantıksal parçalardaki tüm değişiklikleri düşünmeye alıştı.


(veya ayna için git getirme)

5

Annem uyumak için çok geç olduğunda modemi kapatır. DVCS, modem kapandıktan sonra VCS ile çalışmaya devam etmeme izin veriyor.


1
Ben "bir uçaktan çalışabilmek" veya "bitbucket.com düştüğünde çalışabilmek" ama çevrimdışı davayı kapsaması için +1 olarak adlandırırdım.
Wyatt Barnett

Ayrıca 3G şebekesi olmayan açık hava yerleri.
2013'te

3

Varsayılan yanıt, "Şu anda ne kullanırsanız kullanın" işe yararsa neden değiştiresiniz ki? "Olacaktır.

Ancak, evet, bir değişikliğin nedeni olmasa bile, DVCS'yi "eski modellerden" biraz daha kolay buluyorum. Aşağıdakiler , en çok kullandığım Mercurial için geçerlidir , bu nedenle kullanacağınız sisteme bağlı olarak kilometreniz değişebilir.

  • kullanımı gerçekten kolay - bir saat içinde ihtiyacım olan tüm komutları anladım
  • her şey yereldir (çevrimiçi olmak için uzak sunucuya ihtiyacınız yoktur)
  • çok kolay dallanma / birleştirme - artık bunları düşünmüyorsunuz
  • kolay klonlama (ayrıca, bir tür dallanma) - ve genellikle, çok daha kullanıcı dostu bir arayüz (pencerelerde git'inkinden daha keyifli buldum; ayrıca bazı kavramlar daha basittir; yani benim tarafımda düşünmeyi gerektirmez, bu nedenle VS ile daha az uğraşmak ve daha fazla iş yapmak)
  • svn ile iyi çalışıyor

Mercurial ve bir blog (güzel renkler ;-) yararlı ipuçları ile bir giriş kapısı atlama .


Hmm, CVS bizim için çalışırdı, ama ona taşındığımız yerde yıkımın yanı sıra hiçbir yerde yoktu. Yeni oyuncaklar size yeni yetenekler veriyor - bu yüzden Mercurial'ın şimdi daha iyi bir seçenek olup olmayacağına (özellikle de FogBugz'u kullandığım) ve aynı zamanda veracity potansiyeline bakıyorum ...
Murph

3
SVN'den Mercurial'a geçmek benim için bir vahiydi. Joel'in harika hginit.com'undan esinlendi ve hiç geriye bakmadım.
Adam Crossland
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.