Possiamo configurare il server svn su un computer locale senza alcun accesso alla rete?


25

Voglio configurare un repository SVN sul mio computer senza alcun accesso alla rete. Sto lavorando a un codice senza alcun collaboratore, quindi non voglio che sia disponibile pubblicamente.

Ho letto questo post , ma mi suggerisce di utilizzare i servizi di repository SVN online che offrono repository gratuiti. In tal caso, il mio codice sarà disponibile pubblicamente (come è incluso nei termini dei piani gratuiti).

Quindi mi chiedevo se posso configurare un server locale sul mio computer Windows XP a cui accedo solo quando non ho una connessione Internet?


15
Consiglio vivamente di usare git su qualcosa come svn per il flusso di lavoro che hai descritto
Daenyth,

7
Puoi certamente installare svn localmente e usarlo. Nessun problema. visualsvn.com/server/download
Alex

8
O Mercurial; "hg init" crea un repository nella directory in cui ti trovi ... non può essere molto più semplice di così?
perp

8
Non vedo nulla nella domanda per suggerire che sia necessario un DVCS. Subversion è la soluzione perfetta per lo scenario descritto. Non confondiamo le nostre risposte con raccomandazioni per alternative quando non c'è motivo tecnico per farlo.
RichardM,

3
@RichardM: non c'è nulla di sbagliato nel suggerire un'altra soluzione se è più facile da installare e più a prova di futuro. Un DVCS offre molti altri vantaggi se l'OP vuole collaborare con altre persone un giorno.
marco-fiset,

Risposte:


31

Il modo più semplice per configurare un server locale è usare svnserve :

Subversion include Svnserve, un server autonomo leggero che utilizza un protocollo personalizzato su una normale connessione TCP / IP. È ideale per installazioni più piccole o dove non è possibile utilizzare un server Apache completo.

In realtà non è necessario un server di sovversione, se tutto ciò che si desidera fare è accedere al repository localmente, poiché è possibile accedere a un repository di sovversione tramite un URL di file, come descritto in questa risposta :

È possibile accedere al repository utilizzando il protocollo file: // in modo da installare Tortoise SVN e nient'altro. Vedi questa domanda nelle FAQ: è possibile utilizzare TortoiseSVN senza un server?

Puoi anche avere il repository nel dispositivo USB in modo da poter portare la fonte con te e lavorare su da altri computer.

Se si utilizza TortoiseSVN , è possibile trovare le istruzioni in Creazione del repository con TortoiseSVN :

  1. Apri Windows Explorer

  2. Creare una nuova cartella e denominarla ad esempio SVNRepository

  3. Fare clic con il tasto destro sulla cartella appena creata e selezionare TortoiseSVN → Crea repository qui ....

Immediatamente sopra in questa pagina viene descritto anche come creare un repository dalla riga di comando .


Detto questo, ti consiglio di dare un'occhiata a Mercurial o Git in alternativa a svn. Se hai familiarità con TortoiseSvn, troverai TortoiseHg e TortoiseGit una transizione semplice, inoltre ti darà la flessibilità di lavorare in modo distribuito in seguito, se necessario. Ad esempio, in passato ho usato memory stick per trasferire hgrepository tra macchine senza accesso alla rete e quando lavori in questo modo ottieni un backup gratuito nell'affare.


Che grande risposta!
Steve,

9

Server più semplice (e veloce), che puoi usare per lavorare con un repository locale, incorporato in ogni client svn . Questo è un server per accedere a qualsiasi repository e qualsiasi quantità di repository , esistenti sul filesystem locale, usando il file di protocollo: ///. Non fornisce alcun metodo di autorizzazione o autenticazione, garantisce solo un accesso illimitato completo al repository sotto controllo, ma, dall'altro lato, consente di utilizzare e fornisce tutte le funzionalità del sistema VCS in sé.

Per usare questo server, hai in qualsiasi directory vuota in qualsiasi posizione chiama il comando CLI svnadmin con il sottocomando e i parametri corrispondenti (non ricordo, ci sono programmi amministrativi nel bundle CLI-client o no e non puoi controllalo - Non ho installato CLI svn-client, solo TortoiseSVN, che ha questi programmi nell'installer nella versione 1.7) - Spero che tu riesca a trovarlo.

svnadmin helpmostraci tutti i sottocomandi disponibili, ora siamo interessati ai sottocomandi create.

svnadmin help create fornire tutti i dettagli necessari per noi

create: usage: svnadmin create REPOS_PATH

Create a new, empty repository at REPOS_PATH.

Valid options:
...

Al punto di partenza per il primo repository possiamo ignorare tutte le opzioni di ottimizzazione e ricordare solo la forma principale svnadmin create REPOS_PATH, lì REPOS_PATH è il percorso assoluto o relativo alla directory vuota, pianificato per il repository. Poiché la maggior parte delle persone comuni di Windows per le applicazioni multipiattaforma possono essere confuse, quale notazione (forward o backslash) usare nel percorso (metoo), il modo più sicuro è la cdposizione, da cui la nostra directory è visibile senza percorso lungo - genitore della futura directory repo o della directory stessa. Per programmato per pronti contro termine z:\Main prima svnadmin create

Z:
cd \Main

e, infine,

svnadmin create .

Di conseguenza, creiamo un repository vuoto nella directory, mostrato in Esplora risorse con un'icona speciale come indicatore di contenuto

RepoFolder

Ora, ogni volta che è necessario questo repository , usiamo i soliti comandi SVN, sembra che la parte o i parametri URL sembrinofile:///Z:/Main

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

(Ho aggiunto l'albero dei repository standard nei repository).

Analizziamo questo strano URL:

  • file:///, come per qualsiasi URL, significa protocollo di accesso, nel nostro caso il protocollo è speciale e ha tre, non due barre
  • Z:/Main è il percorso completo del repository con unità e percorso all'interno dell'unità, in cui tutte le barre rovesciate di Windows sono sostituite da barre "classiche"

Da qualsiasi altro punto questo repository non ha alcuna differenza da "Big Brothers" con speciali server Subversion

RepoBrower per il file: /// repo


1
@Lazy Badger L'OP ha chiaramente chiesto come impostare un server svn. Gli hai detto di evitare di usare qualsiasi server. Questo evita di rispondere alla domanda, come affermato.
alternativa il

5
@mathepic - in realtà l'OP chiede come impostare un repository SVN e non un server - un'enorme differenza.
Murph,

5

Proviamo una risposta che raccomanda soluzioni generiche piuttosto che specifiche.

Innanzitutto sì, puoi usare Subversion su un computer autonomo: puoi installare il server localmente o puoi lavorare con il file: //


Ma a meno che non ci sia un ottimo motivo per cui devi usare la sovversione, suggerirei che questa non è la soluzione migliore al problema del controllo locale della versione - non ultimo perché fallisce una delle cose che ritengo essenziali, ovvero assicurarti che tu il codice sorgente è in almeno due posizioni (sì, anche per cose personali). Pertanto suggerirei l'uso di un sistema di controllo della versione distribuita (DVCS).

Uno dei vantaggi di DVCS è che, una volta installati gli strumenti, i repository sono autonomi all'interno di una cartella e puoi sincronizzare il contenuto tra diverse cartelle contenenti lo "stesso" repository purché tu abbia accesso a livello di file. Hai anche la possibilità di parlare con versioni "server" di quei repository (che sono ospitati privatamente o che sono disponibili come servizio). Questo rende la vita molto più semplice eseguendo tutto localmente.

Ci sono altri vantaggi anche per DVCS.

Come ho già notato, non penso che tu abbia davvero una soluzione VCS adeguata fino a quando il tuo codice è su almeno due macchine (in particolare due dischi rigidi distinti e idealmente in più di una posizione, anche se clonazione e spingendo per dire chiavetta USB o Lo storage "cloud" (skydrive, dropbox, et al) è un altro modo che dovrebbe funzionare anche).

In termini di DVCS - guarderei Mercurial (Hg) e Git e anche Veracity . Uso Mercurial perché è ancora più bello su Windows ...

Se termini di servizi ospitati, sono davvero d'accordo sul fatto che ci sia un sacco di cose da lodare su github - ma ci sono anche molte cose carine su bitbucket e Fogbugz / Kiln ... e lo stesso vale probabilmente per molti altri servizi che non ho elencato (ad es. http://beanstalkapp.com/ che è stato menzionato passandomi su Twitter prima oggi)


2

Subversion non richiede un server. Utilizza un repository centralizzato, ma è possibile accedere a questo repository tramite il metodo di accesso "file", il che significa che è sufficiente accedere al filesystem in cui è archiviato il repository. Il modo più semplice per configurarlo sarebbe creare una cartella da qualche parte sul tuo hdd, puntare TortoiseSVN (o uno strumento simile) su di esso e 'creare un repository qui'. Da lì, puoi fare tutto il necessario per ottenere il tuo codice nel repository.

Tuttavia, a lungo termine, probabilmente stai meglio usando un SCM distribuito, i migliori candidati sono git (più potente, curva di apprendimento ripida, funziona meglio su * nix) e mercuriale (leggermente meno potente, facile da imparare, funziona allo stesso modo bene su windows e * nix). Con questi, la tua copia di lavoro contiene l'intero repository e puoi creare tutti i cloni (remoti o locali) che desideri. È possibile iniziare a livello locale e se si decide di ospitare il repository esternamente, è sufficiente clonare il repository locale esistente su una posizione esterna e sincronizzare in entrambe le direzioni in qualsiasi momento. Meglio ancora, poiché ciascuno dei tuoi cloni contiene l'intera cronologia del progetto, SCM funge anche da sistema di backup. Con sovversione, se il tuo server muore e non hai eseguito il backup, la tua cronologia è sparita - con git,

http://hginit.com/ ha un eccellente tutorial su come iniziare con mercurial.


1

Ci sono alcune società di hosting SVN che offrono un account gratuito per uno o due sviluppatori e non richiedono che il codice sia pubblico. Controlla la tabella collegata per $ 0 di commissione, OSS richiesto = NO. Conto nove fornitori che soddisfano questi criteri proprio ora.

Mentre puoi certamente ospitare il tuo repository molto facilmente, ci sono alcuni vantaggi che derivano dall'utilizzo di un provider:

  • Puoi accedere al tuo codice da qualsiasi luogo senza alcuna configurazione aggiuntiva.

  • Mantenere il codice fuori sede ti protegge da crash del disco rigido, incendi, ecc.

  • Bassi costi amministrativi.


Vedo un concetto ragionevole dal lato OP : vuole SVN e lo vuole localmente (ultima parola - il più importante). Caso di utilizzo casual. Hai risposto a diversi casi d'uso , che possono essere considerati "Non una risposta" - rileggi il tuo testo dalle prime parole, per favore! Non ho contrassegnato la tua e le altre risposte come "non una risposta", mentre formalmente non sono risposte . HTH
Lazy Badger,

Rileggi ULTIMA SENTENZA di OP: "se riesco a configurare un server locale sulla mia macchina Windows XP a cui accedo solo quando non ho alcuna connessione a Internet?" - questa è una domanda , in semplice testo inglese. Questa domanda richiede una risposta. La tua "risposta" è in qualche modo correlata alla domanda ?! Sii onesto almeno con se stesso , riconoscendo gli errori
Lazy Badger,

Non leggo tra le righe (e l' ho mostrato più di una volta ), ho letto esattamente cosa è stato scritto e rispondo alla domanda posta, senza pensare all'autore, che voleva dire ma non dire . Contrariamente alla maggior parte delle risposte in questo argomento, le risposte non sono correlate alla domanda
Lazy Badger,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.