Bağımsız geliştiriciler için sürüm kontrolü?


60

Bağımsız bir geliştirici iseniz sürüm kontrolünü kullanmaya değersiniz ve öyleyse neden? Depoyu kendi bilgisayarınızda mı yoksa başka bir yerde yedek olarak kullanabileceği bir yerde mi tutuyorsunuz?


54
Eczacının sorduğunu görmek isterdim: "İlaçları düzenli bir şekilde saklamalı mıyım yoksa hepsini bir çekmeceye mi atmalıyım? Çabaya değer mi?"
Erik,

23
Sadece bu harika yazılım parçasını yaratırken bir hafta boyunca gerçekten çok çalıştığınızı hayal edin. Ardından silin. Nasıl hissederdin? Bu sadece depolama değil. Geçen hafta işe yarayan bir şey bozulduğunda, neyin değiştiğini görebilir ve genellikle neyin kırıldığını görebilirsiniz. Ben hala 'profesyonel' geliştiricileri, backup001 ve backup_backup001 klasörlerine kaynaklarıyla karışık olarak görüyorum. Hala gençken iyi alışkanlıklar oluşturun.
Erik,

@Erik Yuck, yedekleme klasörleri kötü geliyor. Projelerim için kaynak kontrolünü kullanıyorum, ancak çoğu zaman taahhüt vermekte iyi değilim.
vedosity

Yanıtlar:


61

Merkezi olmayan kaynak kontrolü kullanıyorsanız (Mercurial veya Git veya Bazaar veya her neyse), SVN / CVS'ye göre avantajlı olursunuz;

  1. Yerel olarak taahhütte bulunuyorsunuz : proje direktörünüz, TAM tarihin olduğu repo. Böylece bir sunucunuz olması gerekmez, doğrudan deponuzda iş yaparsınız ve aynı bilgisayarda birkaç repo olabilir. Eşyalarınız üzerinde çalışmaya devam etmek için bazen açtığınız bir dizüstü bilgisayarı mı kullanıyorsunuz? Harika! Bir sunucu kurmanız gerekmez ve daha sonra gerekirse, kolaydır ve depolar arasındaki değişiklikleri "tıklatır ve" kaldırırsınız.
  2. Denemeyi kolaylaştırmak için yapılmıştır : çoğu zaman kodu kirletmeyen bir özellik hakkında fikir sahibi olmanız gerekir. SVN ve CVS ile zaten bir dallanma sistemi kullanabilir ve özellik olmasını istediğiniz kadar iyi değilse dalı açabilirsiniz. Ancak özelliği gövde sürümüyle birleştirmek istiyorsanız, sürprizleri düzeltmek için çok zorlanacaksınız. Git, Mercurial ve Bazaar (en azından) birleşmeleri ve dalları gerçekten kolaylaştırıyor. İsterseniz bir repoyu çoğaltabilir, bir süre üzerinde çalışabilir, yine de taahhüt edebilir ve öldürebilir veya değişikliklerinizi ana repo'da yapabilirsiniz.
  3. Kuruluşun esnekliği : Daha önce belirtildiği gibi, ihtiyaç duyduğunuz şekilde organize ettiğiniz repolarınız olduğu gibi, tek başına başlamak kolaydır ve kuruluşunuzu değiştirerek diğer kişilerin sizinle birlikte çalışmasına izin vermek kolaydır. Hiçbir kuruluş empoze edilmez, bu yüzden onu kurmanız ve voilà yapmanız yeterlidir. Sık sık kendi bilgisayarlarım arasında değişiklik yapıyorum / çekiyorum (dizüstü bilgisayar / masaüstü / sunucu) ve hala aygıtlarımda yalnızım. Mercurial'ı kullanıyorum ve bu da çalışmamı kopyalamama yardımcı oluyor, aynı zamanda dizüstü bilgisayarımda dışarda düşündüğüm özellikler üzerinde çalışıyor, ardından masaüstümdeki diğer özellikler üzerinde çalışmaya devam ediyor, ardından dizüstü bilgisayarımdaki değişiklikleri masaüstüme veya sunucuma zorla ve tüm masaüstünü birleştir + dizüstü bilgisayar ve sunucuma (yedekleme ve gelecekteki ekip çalışması repo olarak) koyun.
  4. Yedeklemelerin kurulmasına yardımcı olur : merkezi bir repo ayarlarsanız (genel ise GitHub’ta veya BitBucket’deki özel bir repo’da), bir bilgisayarın her açılışında çalıştırılacak bir betiği kolayca yazabilir ve ardından bahsi geçen betiği Düzenli olarak çalışmalarınızı otomatik olarak yedeklemesi için arkadaşlarınıza Yaptığım şey bu, şimdi işimi kaybetmek kolay olmayacağından eminim.

Aslında, şu anda herhangi bir proje için bir kontrol kaynağı aracı kullanmamanız için hiçbir mazeretin yok. Çünkü onlar öncekinden daha güçlü ve esnektir ve ihtiyaçlarınızla birlikte ölçeklenirler.


6
Her zaman GitHub vardır .
HedgeMage

8
Ya bitbucket.org Eğer Mercurial kullanıyorsanız.
Terence Ponce

7
Dropbox'taki yerel bir dosya sistemi deposuyla Mercurial, tek bir aygıt için gerçekten iyi çalışıyor.
Pieter Breed

1
@Guillaume: Tek bir geliştirici, DVCS'nin "dağıtılmış" özelliğini kullanabilir. Yaparım. Örneğin, A bilgisayarında çalışabilir, çalışmamı usb anahtarım üzerine itebilirim ve sonra B bilgisayarında bu usb anahtarından çekebilirim
barjak

1
@Guillaume "Dağıtılmış" bir organizasyonel değil teknik bir özelliktir. Merkezi bir denetleyici kaynak sistemini, yalnızca taahhüt edilen kodu doğrulamasına izin veren entegratörleri olan bir kuruluşla kullanabilirsiniz. Aracın merkezileşmiş doğası nedeniyle bu mümkün ancak kurulumu zor. Ama bu hala ortogonal bir problem.
Klaim

34

kaynak kod kontrolü, bağımsız geliştiriciler için tamamen yararsızdır, çünkü hepimizin bildiği gibi:

  • bağımsız geliştiriciler asla hata yapmaz
  • bağımsız geliştiriciler, işe yaramayan revizyonlardan asla vazgeçmez
  • bağımsız geliştiriciler hiçbir zaman birden fazla sürüme sahip olmadıklarından şubeleri kullanamazlar
  • bağımsız geliştiriciler dün veya geçen hafta ne değiştirdiklerini asla umursamıyor
  • bağımsız geliştiriciler asla, asla yedeklemeye ihtiyaç duymazlar

Bana "bağımlı bir geliştirici" deyin: Mercurial depoları masaüstüm, dizüstü bilgisayarlarım, USB yedekleme sürücülerim ve bitbucket.org arasında kolayca klonlanır. Bağımlı olarak büyüdüm ve böyle hoşuma gitti!


6
Bu cevap alaycı mı?

4
@kurtnelle: extremely!
Steven A. Lowe

1
Kewlio, sadece kontrol ediyorum.

21

Neden olmasın?

Ben solo geliştiriciyim ve kişisel projelerim için BitBucket ve Mercurial kullanıyorum. Kodunuzu geri alma ve kodlama yeteneğine sahip olmak, iletilemeyecek kadar iyidir.


8
BitBucket için +1 - ücretsiz olarak sınırsız özel depo sunar.
Jon Sagara

2
Ücretsiz özel depolar, BitBucket'i GitHub üzerinden kullanmamın nedeni.
Terence Ponce,

4
ücretsiz özel repo ?? Beni git'den hg'ye çevirebilirdin.
Gauthier

@Gauthier, evet, BitBucket ücretsiz özel repolara sahiptir. Yine de sınırsız olduklarından emin değilim.
Terence Ponce,

1
Git bitbucket ile hala kullanabilirsiniz. Aslında ssh anahtarlarını da içeren doğrudan github'dan ithalat. Sadece hamle yaptım ama hala git kullanın (daha iyi!)
Daniel Casserly

1

Şahsen değer buluyorum. Projelerimin tümü git depolarında kontrol ediliyor (hepsi bir donanım arızası durumunda birden fazla makinede tutuyorum). En kullanışlı özellikler, dallanmadır (bu nedenle kod tabanımın yarısını karıştıran bir deneyi çalıştırabilirim ve kalıcı olarak bir şeyi havaya uçurmaktan endişe etmemeliyim) ve geri dönme (temelde sadece steroidleri geri alma; Hata, normal geri alma aralığının dışında).


1

Evet. Çok çok faydalı. Arkadaşım Matt Gallagher , birkaç gün önce bu konuyla ilgili bu mükemmel makaleyi "Cocoa With Love" iOS / MacOS geliştirme blogunda yayınladı .

Makale Mac & Git merkezli ancak temel bilgileri içeriyor.

Ayrıca, aşağıdaki StackExchange Soruları (ve cevapları) da ilginizi çekebilir.


1

Değer?? Zorunlu! Kaynak Kontrolü'nü kullanmazsanız, kaynakları kontrol etmezsiniz ve bu kötüdür. Farklılaşamazsınız, geri dönemezsiniz, değişiklikleri takip edemezsiniz - az önce girdiğiniz aptalca hatayı bulmak için saatler harcayacaksınız. Yedeklenmiş bir sunucuda olması daha iyidir, ancak bilgisayarınızı da kullanabilir ve uygun bulduğunuz herhangi bir yedekleme yöntemini kullanabilirsiniz.


2
Aslında kaynak kontrolünü kullanıyorum, ancak aşırı mühendislik ve fazla pişmiş olan şeyleri benimseme gibi şeyler yapma eğilimindeyim. Bunun için iş yerindeyim. Bir kez daha, ben dahil çalıştığım hiçbir programcının programcı olarak başka bir yerde çalıştığını düşünmüyorum ve çoğumuz hala lisede.
vedosity

1

Kesinlikle kaynak kontrolü kullanın. Ardından bir yapı sunucusu kurun ve yapı ve test işlemlerinizi otomatikleştirin. Tetikleyici, merkez deponuzun kaynak taahhütlerinden kaynaklanır. Bu şekilde üç yıldır tek başıma çalışıyorum ve bu harika.


0

Evet.

Yalnız geliştiricilerin bile geçmiş kodlarından bazılarının kod revizyonlarını görmeleri gerekir. Ve her zaman önemli olan her şeyi yedeklemek iyi bir fikirdir ve bu tüm insanlar için geçerlidir.

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.