Kendim için bir kaynak kod kontrol sistemi nasıl kurarım?


23

Masaüstümde ofisimde, ancak bazen de evde dizüstü bilgisayarımda farklı bir odada, hatta evden bile program yapıyorum. İhtiyacım olan şey, çalışmamı otomatik olarak veya isteğe bağlı olarak çalışmamı ihtiyaçtan birinden diğerine senkronize eden bir sistem.

Ev ağ kurulumum yok ve her ne kadar yapabilirsem de, başka bir pano için bir soru olabilir. Kaynak kodunu bulutta tutacak bir sistem hakkında düşündüm, ancak başlamak için bu konuda yeterince bilgim yok. Bunu yapmak için bir çeşit özgür veya ucuz yola ihtiyacım var.

.NET'te çalışıyorum (aslında Windows Phone 7).


1
dropbox kullanın, sadece her iki makineye kurun ve onunla bitirin. Ücretsiz (2GB'a kadar). Durumunuz için kaynak kontrolü üstte (IMHO).
Darknight

26
Kaynak kontrolü hiçbir zaman üstte (IMHO) değil!
Mongus Pong

4
Git'i yüklemek ve çalıştırmak için <15 dakika sürer (indirme bant genişliğine bağlı olarak).
Mongus Pong

2
dropbox'ı kurmak ve çalıştırmak için <3 dakika sürer (indirme bant genişliğine bağlı olarak).
Darknight

4
DropBox korkunç bir öneri! Uygun bir sürüm kontrol sistemi değil, veri paylaşımı için. Bir dosyayı her kaydettiğinizde ve gerçek zamanlı olarak diğer tüm müşterilere senkronize ettiğinizde değişiklikleri yükleme ve indirme konusunda çok kötü bir alışkanlık vardır, özellikle gereksiz eserler yaratan bir şey kullanıyorsanız, makinenizi gereksiz yere tüm bu gereksiz ağ trafiğini yaparken tamamen düşürür DropBox'taki aynı dizinde. Git veya eşdeğeri DVCS'yi öğrenin ve kullanın.

Yanıtlar:


39

En kolay yol çevrimiçi sistemlerden birini kullanmaktır. Ödeme GitHub veya BitBucket . Git veya Mercurial hakkında daha fazla bilgi için , sırasıyla Git Reference ve Hg Init'e bakın .


Belki, tüm makinelerin internet bağlantısı varsa, ancak başka kullanım alanları da var. Örneğin, bir USB flash bellekte bazı alt sürüm depolarını ve harici bir sabit sürücüde bazı daha büyüklerini (kaynak kod değil - fotoğraflar ve diğer şeyler) saklıyorum. Geçişle daha mutlu olduğumda, USB flash sürücülerde Mercurial depoları olma ihtimalim de var. Sebep - Windows XP'yi hala pek çok şey için kullanıyorum, ancak bugünlerde internette izin vermem (dizüstü bilgisayar ya da masaüstü).
Steve314

21
Git ve Mercurial gibi dağıtılmış sürüm kontrol sistemleriyle ilgili güzel şey, repo ile yerel olarak çalışabilmeniz ve daha sonra bir 'Net bağlantısı kullanışlı olduğunda' merkezi bir sunucuyla eşitleyebilmenizdir. OP için ideal çözüm gibi görünüyor.
Michelle Tilley

@Brandon - harici bir sürücüdeki ana repo için de çalışır, her zaman birbirine bağlı olması acı vericidir.
Steve314

2
Unutmayın, BitBucket, OP için daha iyi bir seçenek haline getiren ücretsiz özel depolara (GitHub'ın aksine) sahiptir.
Kevin Yap,

Yerel olarak çalıştırılmasını önermememin nedeni, rahat edeceği gibi ses çıkarmamasıydı ve uzaktan erişime ihtiyacı olduğunu söyledi. Ancak açıkçası, yerel olarak çalışan ve bir bulut havuzuna zorlamak, gidilecek en iyi / en güvenli yoldur.
Peter Rowell

7

Yerel depo oluşturabilen Git veya Mercurial gibi DVCS'yi kullanabilir, daha sonra Dropbox'ı yükleyebilir ve proje klasörünüzü (tabii ki depo klasörü dahil) dropbox klasörüne yerleştirebilirsiniz.

Dropbox senkronizasyonu idare eder ve senkronizasyon arasında yalnızca bir yerde değişiklik yaptığınız sürece çevrimdışı durumu idare eder.

BTW Dropbox dosyalarınızı varsayılan olarak herkese açık göstermez, ancak isterseniz yine de onları gösterebilirsiniz.

DÜZENLE

Dropbox'ın bir veya iki dosyayı senkronize etmeyi kaçırması durumunda depo bütünlüğü ile ilgili olarak, ana PC'nizdeki Dropbox klasörü dışında bir ana depo oluşturabilir ve itebilirsiniz. Yani Dropbox klasörünün içindeki yerel repo bozulursa ana bilgisayardan geri yükleyin. Ancak depo bozulmalarını tecrübe etmedim.



Esasen ne yapıyorum. Masaüstümde ve dizüstü bilgisayarımda yer alan Mercurial depoları, Dropbox'taki ana depo.
David Thornley

@David Ben ters, PC ana repo, üzerinde çalışıyorum kaynak kod dosyaları da dahil olmak üzere, Dropbox iş repo yapmak.
Endy Tjahjono

@Endy Tjahjono: Çalışmanızı tek bir bilgisayarda yaptığınız gibi yorumunuzdan geliyor. Bazen masaüstümü bazen de dizüstü bilgisayarımı kullanıyorum, bu yüzden bir tanesinde ana havuzum olması gerçekten işe yaramıyor.
David Thornley

@David benim hatam, ana bilgisayarımda 'yedekleme' deposu söylemeliydim. 'Ana' depom, dropbox klasörünün içindeki çalışma deposudur. Ben sadece yedekleme amacıyla zaman zaman yedekleme deposuna basarım.
Endy Tjahjono

6

İşte size dağıtılmış bir VCS'nin nasıl kurulacağına dair bazı hızlı talimatlar. Git veya mercurial kullanmanın yararı, hepsini depolamak için bir sunucu kurmanıza gerek kalmaması, çünkü sadece bir dosya sistemidir. Bilgisayarınızdaki yerel deponuzda kodunuzun yanında bulunur (git içinde bir .gitklasör var ve ticari .hgolarak proje yolunda bir klasör var ).

Git kullanarak

Adım 1: Git'i indirin ve yükleyin. Pencereler için TortoiseGit kullanmak isteyebilirsiniz . Bazı kurulum notları burada .

Adım 2: Projeniz için yerel veri havuzunu başlatmak ve veri havuzunu teslim etmek için git topluluk kitabını takip edin .

Adım 3: "Bulut" üzerine bir şeyler koymak için github olan bu öğreticiyi takip edebilirsiniz .

Mercurial Kullanımı

Adım 1: Mercurial'ı indirin ve yükleyin. Pencereler için TortoiseHg kullanmak isteyebilirsiniz .

Adım 2: Projenize ait depo oluşturmak ve depoya iş vermek için Hızlı Başlangıç ​​kılavuzunu izleyin .

Adım 3 Bitbucket olan "bulut" üzerine bir şeyler koymak için bu öğreticiyi takip edebilirsiniz .

.NET üzerinde çalışıyorsanız, Windows'ta yazma anında daha iyi bir destek ( çünkü) nedeniyle Mercurial kullanmak isteyebilirsiniz .


2

Zaten @ peter-rowell ve diğerlerinin de söylediği gibi, En kolay yol Git gibi herhangi bir DVCS'yi ve Github veya Unfuddle gibi ilgili çevrimiçi sistemleri kullanmaktır. Şahsen Git ve Unfuddle'ı kullanıyorum.

İnternet bağlantınızı evde almanın sizin için de bir sorun olmadığını belirttiğinizden, tarayıcıda çalışan ve bulutta yaşayan yeni bir çevrimiçi IDE var. Daha önce böyle bir şey olduğunu bilmiyordum, ama bu çok ilginç ve havalı görünüyor. Buna rağmen, çok fazla kullanmadım, ama çok havalı.


Unfuddle harika bir hizmettir. Temelde bazı güzel tweaks ile Redmine sadece bir kopyası.
Keyo

2

Neredeyse tüm DVCS'ler yardımcı olacaktır.

En popüler Git, mercurial ve diğerleridir; ama ben gerçekten fosilleri severim . Tek bir (küçük!) Çalıştırılabilir, kolayca taşınabilir, kendi kendine yeten, çok platformlu ve bir wiki, web tabanlı GUI, bilet sistemi, dokümantasyon işleyicisi vb.


1
Bitbucket, Mercurial barındırma hizmeti veren bir hizmettir.
Tamás Szelei

Teşekkürler. bunu biliyordum; ama isimler aklımda karışık
Javier

1

Önereceğim seçenek fırın olurdu . FogBugz ve Stack Exchange'i yapan aynı kişi tarafından yapılır. Bu yüzden oldukça iyi olmalı, inanıyorum ki 3 kullanıcıya kadar ücretsiz. Ölçek tıpkı FogBugz gibidir ve ikisi birleştirilebilir, böylece hataları ve özellikleri de takip edebilirsiniz.

Tıpkı Joel'in blog yazılarından birinde söylediği gibi hata takibi ve kaynak kontrolü yalnız bir geliştiriciye bile her zaman bir artıdır.


Eh, 3 kullanıcı için ücretsiz olabilir, ancak şimdi kullanıcı başına aylık 25 ABD doları. Yine de, serin bir ürün gibi görünüyor.
Cyberherbalist

1

Kodunuzun mahremiyeti sorun değilse, Google Kodu uygun bir çözüm olabilir. Barındırma kısmına özen gösterir ve kurulumu ücretsiz ve oldukça kolaydır. Hepsi Windows istemcileri olan Subversion, Mercurial ve Git'i destekliyor. Aynı zamanda Google Kimliğiyle bütünleşir, böylece projeye kolayca katkıda bulunanları ekleyebilirsiniz. Mercurial'ı kullanarak hobi projelerimi orada barındırıyorum. TortoiseHg istemcisini hem evime hem de iş bilgisayarıma kurdum, böylece molalar sırasında projelerim üzerinde çalışabilecektim.


Güzel! Bunu belirttiğiniz için teşekkür ederiz - daha önce Google Kodunu henüz duymamıştım.
Cyberherbalist

0

Bir sunucu kurma hakkındaki bilgilerinizin ne olduğuna ve ne zaman yatırım yapmak istediğinize bağlıdır.

Şahsen, bir barındırma sunucusundan küçük bir sanal sunucu kiraladım ve bir Apache Web Sunucusunu entegre bir Subversion deposu (şimdi git'e dönüştürüyorum) kurdum. Kurulum gerçekten çok fazla değil ve bir kez çalışır duruma geldiğinde, artık endişelenmenize gerek yok. Bu kurulum, yalnızca bir sürüm kontrol deposu kuramamanızın yanı sıra, bulunduğunuz yerden erişmek istediğiniz diğer tür şeyleri de (örneğin bir WIKI ve bir sorun izleyici kurdum) kurabilme avantajına sahiptir.

Bu sizin için fazla yüklüyse, GitHub gibi önceden önerilen çevrimiçi sistemleri her zaman kullanabilirsiniz.


0

Muhtemelen en kolay git sağlayıcı ile gitmek, github özel bir hesap için ödeme imkanı vardır.

Ama svn'yi unutma, basit ve kullanımı kolaydır. Bir svn sunucusunu, muhtemelen işte, erişebileceğiniz bir yere kurabilirsiniz. (Ve Visual svn server gibi bir proje bunu pencerelerde gerçekten kolaylaştırır.) Bir istemci olarak bir Visual Studio eklentisini veya tortoisesvn kullanabilirsiniz.

Hatırlamanız gereken tek şey, bilgisayar değiştirirken taahhüt etmeniz ve güncellemeniz gerektiğidir.


SVN'nin burada doğru cevap olduğunu sanmıyorum. Mercurial'ı SVN'den daha kolay kurdum ve SVN'den daha iyi bir sistemdi. SVN, merkezi depoya doğrudan bir bağlantı olmadan işe yaramaz ve OP'nin doğrudan bir bağlantısı olmayan iki bilgisayarı var.
David Thornley

Emin değilim, svn, dağıtılmış alternatiflerden daha kolaydır. Ancak sunucuya her zaman ulaşamadığı için, şube olmak istediğinizde disiplinli olmanız gerekir. Ama yine de bir erkek gösterisi nadiren bunu yapar. Ve bilgisayarı değiştirdiğiniz zaman taahhütte bulunma gereği duyduğundan, uygun olmadığına katılıyorum. Ama bu bir alternatif. Git kullanmaya başlamadan önce bu şekilde çalıştım. (Ama git ile yanlış yapmak daha kolaydır).
Johan

Benim düşünceme göre, işe giderken dizüstü bilgisayarı onunla birlikte taşıyor olduğu, aksi takdirde bu kolay bir kurulum olmayacak ve David haklı.
Johan

Bir git veya Hg repo ( git init) kurulumu için geçen süre, birkaç saniye. Subversion ile ilk önce bir sunucuya ihtiyacınız vardır, bu git/hg initdizinde sadece çalıştırmaktan daha zordur . Sabırsız ve tembelim ve Git beni SCM kullanmaya teşvik ediyor, çünkü (birleştirme, başlatma, taahhüt etme) çok hızlı ve acısız.
Keyo

0

Kullandığım Sihirli Fasulye . Kişisel bir SVN sunucusu olarak benim için harika çalıştı. Ayrıca Git hosting var ama denemedim. Başlamak için ücretsiz hesapları var, ardından gerekirse ücretli bir hesaptan mezun olabilirsiniz.


-2

Dropbox

Diğer tüm çözümler ihtiyaçlarınız için fazlasıyla şişirilmiş:

Sadece Dropbox'ı iki bilgisayara da yükleyin.

Tam gelişmiş bir kaynak kontrolü güzeldir, ancak sizin durumunuzda IMHO'ya gerek yoktur .

Bu, alınması gereken en basit yoldur -> istediğiniz kadar makinede otomatik olarak senkronize edilmiş klasörlere sahip olursunuz.


1
Git'i Dropbox ile birlikte kullanabilirsiniz. Stackoverflow.com/questions/1960799/…
Mongus Pong

4
Kaynak kontrolü kullanımıyla ilgili hiçbir şey abartılmıyor, özellikle Git ve HG'nin kurulması çok kolay. Tek bir geliştirici olduğu önemli değil, üretim kodu yazıyorsa kaynak kontrolüne ihtiyacı var.
Richeym

Evet, muhtemelen doğru. Tek bir geliştirici için sadece gereksiz ve OTT olduğunu düşünüyorum, ama heck bu benim görüşüm.
Darknight

git init, git add ., git commit -m "bla"Bazı kod işlemek için bilmeniz gereken tüm ilgili. Zor değil ve geri alabileceğiniz bir akıl parçası olsun. Tabii ki bir takımın yararları çok daha önemli, ama zaman içinde sıfırlayabilmek çok önemli. Dallanma ve saklanma kabiliyeti beni de daha üretken kılıyor.
Keyo

Ne dediğini duyuyorum, açılan kutuda gerçek zamanlı senkronizasyonunda temel geri dönüşü var. Evet, tamamen gelişmiş bir kaynak kontrolüne kıyasla hiçbir şey ifade etmiyor, ancak sonrasında hemen hemen "ateşle ve unut"
Darknight
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.