Taşınabilir depolamaya dayalı Sürüm Kontrolü?


9

Paylaşılan bir sunucu veya ikisi arasında bir ağ bağlantısı kullanmadan iki makinede kişisel projeler geliştiriyorum.

Yaygın sürüm kontrol sistemleri, paylaşılan depo olarak taşınabilir depolama (USB flash aygıt gibi) kullanımını güvenilir bir şekilde destekliyor mu?


Taşınabilir depolama alanını neden kullanmak istiyorsunuz / ihtiyacınız var?
Bernard

Kodu iki makine arasında normal bir sürüm kontrol sisteminin paylaşılan bir sunucuyla aynı şekilde taşımak için. (Paylaşılan bir sunucum yok.)
billpg

Fabrikadaki üretim araçlarını güncellemek için bir USB flash sürücüde bir dizi cıva deposu kullanıyordum ve gerçekten iyi çalıştı. Hatta uzaktayken, sahadaki teknisyenlerin yerel makinedeki kodu ne zaman değiştirdiğini görebilir ve değişikliklerini tekrar flash sürücüye senkronize etmeden önce değişikliklerini birleştirebilir veya reddedebilirsiniz.
Mark Booth

Burada zaten SVN'nin yerel depolamayı desteklediği ve usb kullanabileceğiniz söylendi. Ama onun DB'sini özel DropBox klasörümde saklamayı tercih ediyorum;) Ayrıca birçok ücretsiz hizmeti de kullanabilirsiniz (assemblyla veya tfs.visualstudio.com gibi)
Pavel Voronin

Yanıtlar:


31

Git veya Mercurial gibi bir DVCS kullanın .

Dağıtılmış sürüm kontrol sistemlerinin paylaşılan bir merkezi sunucusu yoktur.

Bir DVCS ile, deponun her kopyası tüm geçmişi tutar - her şey. Bu, bir USB anahtarında kullanıldığında, yaptığınız herhangi bir değişikliğin USB anahtarındaki depoda yapıldığı ve bilgisayarlar arasında taşındığında bu geçmişi tutacağı anlamına gelir.


9
Ve github kullandıysanız, bir USB sürücüsünü taşımak zorunda
kalmazsınız

Teşekkür ederim. Depo olarak taşınabilir bir depolama birimi kullanılması ayarlanabilir mi?
billpg

@billpg - Evet. Sadece bir dizin yapısında yaşıyor.
Oded

@CamelBlues veya bitbucket veya kilnhg veya muhtemelen uygun olabilecek veya olmayabilir çeşitli diğerleri ...
Murph

3
DropBox üzerinde ana kişisel Mercurial depolarım var. Harika çalışır ve yedeklemeyi otomatik olarak uygular (çünkü DropBox, tüm bilgisayarlarımı kaybettiğimde kaybolma olasılığı düşüktür).
David Thornley

7

Yukarıda önerilen GIT, Mercurial vb.Ayrıca, Fossil'e de göz atın - Çalışma süresi ikili dosyalarının küçük olması (Windows ve Linux için 1Meg veya benzeri), taşınabilir ve sıfır kurulum gerekir. Bu nedenle, diğerlerinden farklı olarak (bildiğim kadarıyla), önce uygulamayı makineye yüklemek zorunda kalmadan depolama cihazına yerleştirilebilir ve depolama biriminin takılı olduğu herhangi bir makinede çalıştırılabilir. Bir Wiki ve repo ile değişiklik / kusur izleme sistemi içerir. Ayrıca yerleşik bir gui vardır.

Ciddi kullanmadım (çoğunlukla GIT kullanıyorum), ancak hafif yaklaşımı ve Wiki ve kusur izleyicinin dahil edilmesi onu küçük projeler için ideal hale getiriyor. Tek endişem, GIT'in daha güçlü özelliklerinden bazılarının mümkün olmamasıydı ve GIT'in aksine, kullanıcı topluluğu o kadar büyük değil, soruların cevaplarını bulmak kolay.


Git bir şeyi yapmak ve ciddiye almak için Unix komutunu alsa da, Git'te ticgit (biletleme sistemi) ve gollum (repo tabanlı wiki) gibi uzantılar aracılığıyla bu özelliklere sahip olabilirsiniz.
Jason Lewis

@Jason Lewis: Haklısınız ve açık kaynak olduğu için, yine de gereksinimlerinizi karşılayacak şekilde değiştirebilirsiniz, böylece GIT (veya başka bir araç) herkes için her şey olabilir (rahatsız edilebilecek, boş zaman ve kaynaklara sahip olabilir) Tüm "eklentileri" indirmek, yüklemek ve hatalarını ayıklamak için söylediklerim "Sadece kutunun dışında çalışır" bir çözüm içindir,
Fossil'i

1

DCVS kullanmak muhtemelen iyi bir fikirdir, ancak tek seçenek bu değildir.

USB flash sürücüde küçük bir CVS veri havuzum var. Erişmek istediğimde, sadece deponun kök yolunu kullanmam cvs -d <path>veya ayarlamam $CVSROOTgerekiyor (ki elbette başparmak sürücüsünün sisteme monte edilmesini gerektirir).

CVS kullanmaya alışkınsanız, bunun uygulanabilir olması gerekir. Aynı şey SVN için de geçerli olmalıdır. Bu sadece merkezi deponuzun parmak sürücünüzde olduğu ve her zaman görünmeyeceği anlamına gelir.

Genel olarak CVS yerine DCVS kullanmak için argümanlar vardır. Bu argümanların merkezi deponun parmakla veya başka bir yerde olup olmadığından özellikle etkilendiğini düşünmüyorum. Örneğin, başparmak sürücüsünde bir git deposu kolayca oluşturabilirsiniz.


1
Normalde DVCS'nin büyük bir hayranı değilim, ancak bu durumda DVCS'nin daha iyi olacağını düşünüyorum. Dağıtılmamış VCS ile ilgili sorun, repo'nun tek bir hata noktası olmasıdır. Ancak bir başparmak götürmek gibi bir şey - bir iklim kontrollü veri merkezinde oturuyor ve büyük bir anlaşma olmadığını, düzenli yedeklenen Eğer edecek er (Beyaz Rus içine veya üzerine bastı ya yemiş bir köpek tarafından veya düşürülmesi) kaybolmak veya daha sonra.
Mike Baranczak

1
@MikeBaranczak: İyi bir nokta - ancak bir başparmak sürücüsündeki her şey CVS deposu olsun ya da olmasın düzenli olarak yedeklenmelidir.
Keith Thompson

dağıtılmış bir sistemde, her istemcinin repo'nun tam bir kopyası zaten vardır. Bu yüzden ayrı bir "yedekleme" prosedürü için hiçbir neden yoktur.
Mike Baranczak

1
@MikeBaranczak: Elbette, bu bir DCVS kullanmak için iyi bir neden. Demek istediğim, DCVS ve merkezi sistem seçiminin, parmak sürücü kullanıp kullanmadığınıza bağlı olmadığıdır.
Keith Thompson

0

Diğer cevaplara ek olarak:

Bir DVCS bu soruna çok iyi uyurken, daha rahat hissediyorsanız Subversion'u teknik olarak da kullanabilirsiniz. Subversion, merkezi sunucu yerine yerel bir dizin kullanabilir. Bunu küçük bir sürücüye koyabilir ve kullanabilirsiniz.

Bir DVCS ile karşılaştırıldığında dezavantaj, başparmak sürücüsü takılıyken Subversion ile çalışabilmenizdir (örn. Kesinleştirme, görüntüleme günlükleri vb.). Ayrıca, her zaman aynı başparmak sürücüsü (veya en azından yukarı güncel kopya), çünkü Subversion ile birden fazla depo kullanmamalısınız (dağıtılmamış kısım budur). Başparmak sürücünüzü unutursanız, Git veya Mercurial'ın aksine kullanamazsınız.

Not:

Yukarıda açıklandığı gibi ve yorumlarda, bir DVCS gerçekten probleminize daha iyi uyuyor. Subversion'dan sadece eksiksizlik uğruna bahsettim ve Subversion'u kullanmak için özel bir nedeniniz varsa.


1
Olduğu gibi Keith 'in cevabı, yerel bir dizinde bir VCS ile sorunu tek bir hata noktası olmasıdır. Ayrıca, A makinesinden B makinesine geçerseniz ancak başparmak sürücüsünü A makinesine takılı bırakırsanız, bir DVCS (daha sonra her zaman yerel değişikliklerinizde birleştirebilirsiniz) kullanırken, VCS ile ilgilenme olasılığınız çok daha düşüktür devam edebilmeniz için A makinesine geri dönmeniz, sürücüyü almanız ve B makinesine geri dönmeniz gerekir.
Mark Booth

@MarkBooth: Bu çözümü savunmuyorum, sadece tamlık uğruna var olduğunu ve OP'nin Subversion için bazı özel tercihleri ​​olduğunu belirtmek istedim. Bunu netleştirmek için cevabımı düzenledim.
sleske

Teşekkürler @sleske, svnbu çözümü kullanmak lehine (veya gerçekten de Cvs) bir tercihin olabileceğini kabul ediyorum , ancak tam açıklamanın yararları için, bu yaklaşımın dezavantajları da belirtilmelidir. Yorumumdan cevabınıza noktaları düzenlemekte serbestsiniz. Bunu yaparsanız yorumlarımı temizlemekten (silmekten) memnun olurum. * 8 ')
Mark Booth

Bu cevabın benimkinde söylemediğime ne eklediğinden emin değilim.
Keith Thompson

1
@KeithThompson: SVN'nin merkezi bir sunucu yerine yerel bir dizin kullanabileceği bilgileri ekler. Bu, SVN belgelerinde açıklanmaktadır, ancak çoğu insan SVN'yi merkezi bir sunucu aracılığıyla kullandığından, SVN'nin bir sunucu gerektirmediği açık olmayabilir.
sleske
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.