Svn sunucusunu ağ erişimi olmayan yerel bir bilgisayarda ayarlayabilir miyiz?


25

Ağ erişimim olmadan bilgisayarımda bir SVN deposu kurmak istiyorum. Ortak çalışan olmadan bir kod üzerinde çalışıyorum, bu yüzden kamuya açık olmasını istemiyorum.

Bu gönderiyi okudum , ancak ücretsiz depolar veren çevrimiçi SVN depo hizmetlerinin kullanılmasını önerir. Bu durumda, kodum halka açık olacak (ücretsiz planlar kapsamında olduğu gibi).

Bu yüzden, Windows XP makinemde yerel bir sunucu kurabilir miyim, sadece internet bağlantım olmasa bile erişebileceğim bir sistem kurabilir miyim?


15
Git'i

7
Kesinlikle svn'yi yerel olarak kurabilir ve kullanabilirsiniz Bununla ilgili sorun yok. visualsvn.com/server/download
Alex

8
Veya Mercurial; "hg init", bulunduğunuz dizinde bir depo oluşturur ... bundan daha kolay olamaz mı?
Perşembe

8
Bir DVCS'nin gerekli olduğunu önerecek hiçbir şey görmüyorum. Yıkılma, açıklanan senaryo için mükemmel bir seçimdir. Teknik bir neden olmadığında alternatifler için önerilerle cevaplarımızı bulanıklaştırmayalım.
RichardMM

3
@RichardM: Kurulumu daha kolay ve geleceğe daha uygunsa başka bir çözüm önerme konusunda yanlış bir şey yok. OP bir gün diğer insanlarla işbirliği yapmak isterse bir DVCS başka birçok avantaj sağlar.
marco-fiset

Yanıtlar:


31

Yerel bir sunucu kurmanın en kolay yolu svnserve kullanmaktır :

Subversion, sıradan bir TCP / IP bağlantısı üzerinden özel bir protokol kullanan hafif bir bağımsız sunucu olan Svnserve'yi içerir. Küçük kurulumlar için veya tam gelişmiş bir Apache sunucusunun kullanılamadığı yerler için idealdir.

Gerçekte bir alt sunucuya ihtiyacınız yoktur , eğer yapmak istediğiniz tek şey yerel olarak depoya erişmekse, bu yanıtta açıklandığı gibi bir dosya URL'si yoluyla bir alt havuza erişebilirsiniz, çünkü :

Dosyaya: // protokolünü kullanarak depoya erişebilirsiniz, böylece yalnızca Tortoise SVN'in kurulu olması ve başka bir şeyin olmaması gerekir. Bu soruya SSS'de bakın: TortoiseSVN'yi sunucu olmadan kullanmak mümkün müdür?

Kaynağınızı yanınızda götürebilmeniz ve başka bilgisayarlardan çalışabilmeniz için usb cihazında depo bile olabilir.

TortoiseSVN kullanıyorsanız, TortoiseSVN ile Depo Oluşturma bölümündeki talimatları bulabilirsiniz :

  1. Windows Gezgini'ni açın

  2. Yeni bir klasör oluşturun ve adlandırın, örneğin SVNRepository

  3. Yeni oluşturulan klasöre sağ tıklayın ve TortoiseSVN → Burada Depo Oluştur ... 'u seçin.

Hemen yukarıda bu sayfada bir komut satırından bir depo oluşturmayı da açıklar .


Bunu söyledikten sonra, Mercurial veya Git'e bir alternatif olarak bakmanızı öneririm svn. TortoiseSvn ile aşina iseniz, o zaman TortoiseHg ve TortoiseGit'i kolay bir geçiş bulacaksınız , ayrıca ihtiyacınız olduğunda dağıtılmış bir şekilde çalışma esnekliği sunar. Örneğin geçmişte hgağ erişimi olmayan makineler arasında depoları aktarmak için bellek çubukları kullandım ve bu şekilde çalıştığınızda pazarlıkta ücretsiz bir yedekleme elde edersiniz.


Ne güzel bir cevap!
Steve

9

Her svn istemcisine katıştırılmış yerel depo ile çalışmak için kullanabileceğiniz en basit (ve en hızlı) sunucu . Bu, yerel dosya sisteminde bulunan herhangi bir depoya ve herhangi bir miktarda depoya , protokol dosyasını kullanarak // /. Herhangi bir yetkilendirme veya kimlik doğrulama yöntemi sağlamaz, kontrol altındaki havuza yalnızca tam sınırsız erişim hakkı tanır, ancak diğer taraftan VCS sisteminin tüm özelliklerini kullanmaya izin verir ve verir.

Bu sunucuyu kullanmak için, CLI-komut svnadmin herhangi bir konumdaki herhangi bir boş dizinde, ilgili alt komut ve parametrelerle (Herhangi bir hatırlayamıyorum, CLI-istemci paketinde yönetim programları var mı yoksa yok mu? kontrol et - CLI svn-client kurulumunu yapmadım, sadece 1.7 sürümünde bu programları yükleyen TortoiseSVN)) - Umarım, bulabilirsin.

svnadmin helpmevcut tüm alt komutları göster, şimdi alt komutla ilgileniyoruz create.

svnadmin help create Bize gerekli tüm ayrıntıları sağlamak

create: usage: svnadmin create REPOS_PATH

Create a new, empty repository at REPOS_PATH.

Valid options:
...

İlk repo için başlangıç ​​noktasında tüm ince ayar seçeneklerini yok sayabilir ve yalnızca ana formu hatırlayabiliriz svnadmin create REPOS_PATH, REPOS_PATH, repo için planlanan boş dizine mutlak veya göreceli bir yoldur. Platformlar arası uygulama için sıradan Windows çalışanlarının çoğu zaman insanların kafası karışabilir, bu yollarda hangi gösterim (ileri veya ters eğik çizgiler) kullanılırsa (metoo), en güvenli yol cddir. - gelecekteki repo dizini veya dizinin kendisinin üstü. Daha önce repo için planlanan içinz:\Main svnadmin create

Z:
cd \Main

sonunda,

svnadmin create .

Sonuç olarak, Windows Explorer'da içerik göstergesi olarak özel bir simge ile gösterilen dizinde boş bir depo oluşturulduk

RepoFolder

Şimdi, bu depoya her ihtiyaç duyulduğunda, her zamanki SVN komutlarını kullanıyoruz, URL bölümü ya da parametreleri şöyle görünüyor:file:///Z:/Main

c:\>svn ls file:///Z:/Main
branches/
tags/
trunk/

(Repo'da standart depo ağacı ekledim).

Bu garip URL'yi inceleyelim:

  • file:///URL'lerde olduğu gibi, erişim protokolü anlamına gelir, bizim durumumuzda protokol özeldir ve iki eğik çizgi içermez.
  • Z:/Main sürücü ve sürücünün içindeki yolun bulunduğu tam yol, "klasik" öne eğik çizgi ile değiştirilen tüm Windows ters eğik çizgiler

Diğer herhangi bir noktadan, bu depo, özel Subversion sunucuları olan "Büyük Ağabeyler" den herhangi bir farklılık göstermedi

Dosya için RepoBrower: /// repo


1
@Lazy Badger OP, bir svn sunucusunun nasıl kurulduğunu açıkça sordu. Ona herhangi bir sunucuyu kullanmaktan kaçınmasını söyledin. Bu, belirtildiği gibi soruya cevap vermekten kaçınır.
alternatif

5
@ mathepic - aslında OP bir sunucu değil bir SVN deposunun nasıl kurulacağını soruyor - çok büyük bir fark.
Murph

5

Haydi özellikler yerine genel çözümler öneren bir cevabı deneyelim.

Öncelikle evet, Subversion'u bağımsız bir bilgisayarda kullanabilirsiniz; sunucuyu yerel olarak yükleyebilir veya dosyayla çalışabilirsiniz: //


Ancak, yıkılmayı kullanmak zorunda olmanızın çok iyi bir nedeni olmadıkça, bunun yerel sürüm kontrolü sorununa en iyi çözüm olmadığını öne süreceğim - en azından bunun temel olarak düşündüğüm şeylerden birini yerine getirmediğinden, yani sizi temin etmekten kaynak kodu en az iki yerdedir (evet, kişisel eşyalar için bile). Bu nedenle, Dağıtılmış Sürüm Kontrol Sisteminin (DVCS) kullanılmasını öneririm.

DVCS'nin avantajlarından biri, araçlar kurulduktan sonra, depoların bir klasörde yer almasıdır ve içeriği, dosya düzeyinde erişiminiz olduğu sürece "aynı" repoyu içeren farklı klasör arasında senkronize edebilirsiniz. Ayrıca, bu depoların "sunucu" sürümleriyle konuşma seçeneğiniz de vardır (özel olarak barındırılan veya bir hizmet olarak kullanılabilen). Bu, her şeyi yerel olarak yöneterek hayatı çok daha kolaylaştırır.

DVCS'nin başka avantajları da var.

Daha önce de belirttiğim gibi, kodunuz en az iki makinede (özellikle iki farklı sabit diskte ve ideal olarak birden fazla yerde), USB bellek veya klonlama yapmak için bastırmanıza rağmen, doğru bir VCS çözümünüz olduğunu sanmıyorum. "bulut" depolama (skydrive, dropbox ve diğerleri) de çalışması gereken bir başka yoldur).

Hangi DVCS açısından - Mercurial (Hg) ve Git'e ve ayrıca Veracity'ye bakardım . Mercurial'ı kullanıyorum çünkü pencerelerde hala daha güzel ...

Barındırılan hizmetlere ilişkin terimleriniz varsa, github'a övgüye değer bir çok şey olduğu konusunda hemfikirim - ama aynı zamanda bitbucket ve Fogbugz / Kiln hakkında da çok güzel şeyler var ... ve aynısı diğer birçok hizmet için de geçerlidir. listelemediğim (örneğin bugün erken twitterdan bana geçerken bahsettiğim http://beanstalkapp.com/ )


2

Subversion bir sunucu gerektirmez. Merkezileştirilmiş bir havuz kullanır, ancak bu depoya 'dosya' erişim yöntemi ile erişilebilir, bu, yalnızca havuzun depolandığı dosya sistemine erişmeniz gerektiği anlamına gelir. Bunu ayarlamanın en kolay yolu, hdd'nizde bir yerde bir klasör oluşturmak, üzerinde TortoiseSVN (veya benzer bir araç) üzerine gelin ve 'burada depo oluşturun'. Oradan, kodunuzu depoya girmek için ne gerekiyorsa yapabilirsiniz.

Bununla birlikte, uzun vadede, dağıtılmış bir SCM kullanarak muhtemelen daha iyisin, en iyi adaylar git (daha güçlü, dik bir öğrenme eğrisi, en iyi * nix'te çalışır) ve mercurial (biraz daha az güçlü, öğrenmesi kolay, eşit çalışıyor) pencerelerde iyi ve * nix). Bunlarla, çalışma kopyanız tüm depoyı içerir ve istediğiniz kadar klon (uzak veya yerel) oluşturabilirsiniz. Yerel olarak başlayabilir ve depoyu dışarıda barındırmaya karar verirseniz, varolan yerel havuzunuzu harici konuma klonlar ve istediğiniz zaman her iki yönde de senkronize edebilirsiniz. Daha da iyisi, klonlarınızın her biri tüm proje geçmişini içerdiğinden, SCM yedekleme sistemi olarak ikiye katlanır. Subversion ile, sunucunuz ölürse ve yedekleme yapmadıysanız, geçmişiniz gider - git,

http://hginit.com/ , mercurial ile çalışmaya başlamak için mükemmel bir rehbere sahiptir.


1

Orada epeyce SVN barındırma şirketleri bir ya da iki geliştiriciler için ücretsiz bir hesap sunmak ve kod kamu olmasını gerektirmez. Bağlantılı grafiği 0 $ ücret karşılığında kontrol edin, OSS Gerekli = HAYIR. Şu anda bu kriterleri karşılayan dokuz sağlayıcıyı sayıyorum.

Kendi havuzunuzu kesinlikle çok kolay bir şekilde barındırabilseniz de, bir sağlayıcı kullanmanın getirdiği bazı avantajlar vardır:

  • Kodunuza, herhangi bir kurulum yapmadan istediğiniz yerden erişebilirsiniz.

  • Kodunuzu site dışında tutmak, sizi sabit disk çökmelerinden, yangınlardan vb. Korur.

  • Düşük idari ek yük.


Gördüğüm makul kavram üzerinde OP tarafında o SVN istiyorum ve istiyoruz - lokal (son sözü - en önemli). Gündelik kullanım durumu. "Cevap değil" olarak kabul edilebilecek farklı kullanım durumlarına cevap verdiniz - lütfen ilk kelimenizi tekrar okuyun! Ederken, "değil bir cevap" olarak ve başkalarının cevapları bayraklı vermedi resmen onlar cevaplar değildir . HTH
Lazy Badger

OP'lerin SON SENTENCE'ını tekrar okuyun: "windows xp makinemde yalnızca internet bağlantım olmadığında bile erişebileceğim yerel bir sunucu kurabilir miyim?" - Bu soru , düz İngilizce metin olarak. Bu soru cevap gerektiriyor. "Cevabınız" soruyla herhangi bir şekilde bağlantılı mı ?! En azından kendine dürüst ol , hataları tanıyarak
Lazy Badger

Satır aralarını okumaz (ve bu gösterdi kereden fazla ) o yazarın düşünmeden, ben, yazılı ve sorulan soru üzerine cevap tam olarak ne okumak istediğini söylüyorlar ama söyleme . Bu konudaki cevapların çoğunun aksine, cevapların soru
Lazy Badger
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.