it-swarm.dev

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

Bağımsız bir geliştiriciyseniz sürüm kontrolünü kullanmaya değer mi ve neden öyleyse, neden? Depoyu kendi bilgisayarınızda mı yoksa yedek olarak kullanılabileceği başka bir yerde mi tutuyorsunuz?

60
vedosity

Merkezi olmayan kaynak kontrolü kullanırsanız (Mercurial veya Git veya Bazaar ya da her neyse), bir indy olmanız durumunda kullanımı kolay, kullanışlı ve güçlü kılan SVN/CVS'ye göre avantajlar elde edersiniz:

  1. Yerel olarak taahhüt ediyorsunuz: proje direktifiniz TAM geçmişe sahip repo. Böylece bir sunucunuz olması gerekmez, doğrudan depoya bağlı kalırsınız ve aynı bilgisayarda birkaç depoya sahip olabilirsiniz. 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 kurmak zorunda değilsiniz ve daha sonra bir sunucuya ihtiyacınız varsa, kolay ve sadece depolar arasında değişiklikleri "itin" ve "çekin".
  2. Deneyi kolaylaştırmak için yapılmıştır: genellikle kodu kirletmeden 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ını fırlatabilirsiniz. Ancak özelliği gövde sürümü ile birleştirmek istiyorsanız, sürprizleri düzeltmek için çok zor olacaksınız. Git, Mercurial ve Bazaar (en azından) birleşmeleri ve şubeleri gerçekten kolaylaştırır. Hatta bir repoyu çoğaltabilir, bir süre üzerinde çalışabilir, yine de taahhüt edip öldürebilir veya isterseniz ana repodaki değişikliklerinizi itebilirsiniz.
  3. Organizasyonun esnekliği: daha önce belirtildiği gibi, ihtiyacınız olduğu gibi düzenlediğiniz depolarınız olduğu için, tek başınıza başlamak ve kuruluşunuzu değiştirerek diğer kişilerin sizinle birlikte çalışmasına izin vermek kolaydır. Hiçbir organizasyon dayatılmadığından, onu kurmanız ve voilà yapmanız yeterlidir. Sık sık kendi bilgisayarlarım (dizüstü bilgisayar/masaüstü/sunucu) arasındaki değişiklikleri iter/çekerim ve geliştiricilerimde hala yalnızım. Mercurial kullanıyorum ve işimi çoğaltmama yardımcı oluyor, ancak dizüstü bilgisayarımda dışarıda düşündüğüm özellikler üzerinde çalışıyorum, ardından masaüstümdeki diğer özellikler üzerinde çalışmaya devam ediyorum, ardından dizüstü bilgisayarımdaki değişiklikleri masaüstümde veya sunucumda itin ve tüm masaüstünü birleştirin + dizüstü bilgisayar ve sunucuma koymak (yedekleme ve gelecekteki ekip çalışması repo olarak).
  4. Yedeklemelerin ayarlanmasına yardımcı olur: merkezi bir repo oluşturursanız (halka açıksa GitHub'da veya BitBucket'teki özel bir repoda), bilgisayar her başlatıldığında yürütülecek bir komut dosyasını kolayca yazabilirsiniz ve daha sonra söz konusu komut dosyasını arkadaşlarınıza iletin, böylece çalışmanızın düzenli olarak otomatik olarak yedeklenmesini sağlar. Şimdi yaptığım şey işimi kaybetmenin kolay olmayacağından eminim.

Aslında, şu anda, herhangi bir proje için kontrol kaynağı aracı kullanmamak için hiçbir mazeretiniz yok. Çünkü eskisinden daha güçlü ve esnektirler ve ihtiyaçlarınıza göre ölçeklendirilirler.

61
Klaim

kaynak kodu kontrolü bağımsız geliştiriciler için tamamen işe yaramaz, çünkü hepimizin bildiği gibi:

  • bağımsız geliştiriciler asla hata yapmaz
  • bağımsız geliştiriciler asla işe yaramayan revizyonlara devam etmez
  • bağımsız geliştiricilerin hiçbir zaman birden fazla sürümü yoktur, bu nedenle şubeler için hiçbir faydaları yoktur
  • bağımsız geliştiriciler dün veya geçen hafta neleri değiştirdiklerini hiç umursamıyorlar
  • bağımsız geliştiriciler asla, hiç yedeklemeye ihtiyaç duymaz

Bana "bağımlı 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ıyor. Bağımlı oldum ve bu şekilde beğendim!

34
Steven A. Lowe

Neden olmasın?

Yalnız bir geliştiriciyim ve kişisel projelerim için BitBucket ve Mercurial kullanıyorum. Kodunuzu geri alma ve çatallama yeteneğine sahip olmak, geçmek için çok iyi.

21
Terence Ponce

Ben şahsen değer buluyorum. Projelerimin tümü git depolarına (bir donanım arızası durumunda birden fazla makinede sakladığım) kontrol edilir. En yararlı özellikler dallanmadır (böylece kod tabanımın yarısıyla karışan bir deney yapabilir ve kalıcı olarak bir şeyleri havaya uçurmaktan endişe etmeyeceğim) ve geri dönüyoruz (temelde sadece steroidleri geri alıyorum; düzenli geri alma aralığının dışında bir hata).

1
Inaimathi

Evet. Çok faydalıdır. Arkadaşım Matt Gallagher yayınladı bu mükemmel makale birkaç gün önce bu konuda "Aşkla Kakao" iOS/MacOS geliştirme blog.

Makale Mac & Git merkezli ama temelleri kapsıyor.

Ayrıca aşağıdaki StackExchange Soruları (ve cevapları) ile de ilgilenebilirsiniz.

1
orj

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

1
Assimiz

Kesinlikle kaynak kontrolünü kullanın. Ardından bir yapı sunucusu kurun ve oluşturma ve test işlemlerinizi otomatikleştirin. Tetikleyici, merkezi deponuzun kaynak taahhütlerinden oluşur. Üç yıldır kendi kendime bu şekilde çalışıyorum ve bu harika.

1
Dave Neeley

Evet.

Tek bir geliştiricinin bile bazen kodlarının durumunu geçmiş bir revizyondan görmesi gerekir. Önemli olan her şeyi yedeklemek her zaman iyi bir fikirdir ve bu tüm insanlar için geçerlidir.

0
whatsisname