È questa la procedura passo-passo e l'organizzazione corretta per la creazione di un repository SVN con più progetti e fornitori?

StackOverflow https://stackoverflow.com/questions/259600

  •  06-07-2019
  •  | 
  •  

Domanda

Ho letto un bel po 'del libro SVN di Red Bean Software e alcune delle domande qui su SO, ma voglio assicurarmi di farlo nel modo giusto la prima volta che passo dopo passo -passo prima di iniziare a usarlo. È corretto?

  1. Installa SVN.
  2. Crea repository SVN in / usr / local / svn. La struttura delle directory è simile alla seguente:

    -- conf
    -- db
    -- format
    -- hooks
    -- locks
    -- README.txt
    
  3. Crea cartelle tramite la riga di comando per l'organizzazione del repository (inclusi progetti e fornitori).

    -- conf
    -- db
    -- format
    -- hooks
    -- locks
    -- projects
       -- project_name
          -- vendor
          -- trunk
          -- branches
          -- tags
       -- project_name
          -- vendor
          -- trunk
          -- branches
          -- tags
    -- README.txt
    
  4. Verifica il codice fornitore nella cartella fornitore con il nome progetto corretto.

  5. Esporta il codice del fornitore nel trunk con il nome del progetto corretto (non è necessaria l'unione, poiché non ho ancora i file del trunk del progetto).
  6. Crea utenti / autorizzazioni in / svnroot / conf / passwd e /svnroot/conf/svnserve.conf.
  7. Assicurati che svnserve sia in esecuzione e sul mio client SVN locale (TortoiseSVN), controlla il trunk per il progetto di cui ho bisogno.

Non ho bisogno di pubblicarlo tramite URL pubblico, quindi non sto configurando per Apache. Il server non è nella nostra rete, ma è un box CentOS dedicato che affittiamo. Grazie per eventuali pensieri e consigli.

Modifica

Immagino di essere confuso perché non ho un codice o un progetto per cominciare, quindi sto ricominciando dal codice del fornitore. Devo creare una struttura di directory da qualche parte sul server che includa il mio project_name con sottocartelle fornitore, trunk, rami e tag, importarlo nel mio repository e quindi importare il codice dal fornitore nella cartella del fornitore? L'idea è che posso ottenere aggiornamenti dal fornitore e quindi unirli con le eventuali modifiche apportate al mio trunk.

È stato utile?

Soluzione

  

Crea cartelle tramite la riga di comando per l'organizzazione del repository (inclusi progetti e fornitori).

Intendi creare la struttura del repository creando directory all'interno della directory di intallazione di sovversione? È molto sbagliato.

Devi creare le cartelle necessarie tramite il comando svn mkdir e non tramite il filesystem.

In / usr / local / svn hai l'implementazione fisica del repository Subversion e devi accedervi solo tramite un client e non toccarlo mai " manualmente ".

Ad esempio, utilizzando il file: // schema URL

svn mkdir file:///usr/local/svn/projects -m "Parent dir for projects created"

Altri suggerimenti

Sembra che tu abbia principalmente l'idea giusta, ma la tua terminologia è un po 'sbagliata. Ciò confonderà davvero le persone SVN, poiché stai usando parole che hanno significati specifici nel contesto di SVN. Per espandere ciò che ha detto Davide:

2) crea il tuo repository facendo qualcosa come svnadmin create / usr / local / svn .

3) crea le tue cartelle. Non hai bisogno (o desideri) le parti del tuo elenco che non sono al di sotto di progetti / . Quelle altre directory sono ciò che SVN usa per tenere traccia delle revisioni, non sono effettivamente nel repository. Se crei una gerarchia di directory da qualche parte sul tuo sistema che contiene la sottostruttura project_name / , puoi quindi eseguire svn import su di essa tutte le volte che vuoi, una volta per ogni progetto (assegnando ogni volta un nome diverso per la destinazione). Ciò creerà la tua struttura di directory.

4) Invece di " checkout " ;, penso che intendi o " import " o " check-in " (di solito chiamato "commit" in linguaggio SVN, ma "checkin" sarà compreso). L'importazione aggiungerà i file del fornitore al repository. Checkout significa "creare una copia locale di questa directory con versione per consentirmi di lavorare con " noto come copia di lavoro. Ogni sviluppatore del tuo team dovrebbe avere la propria copia di lavoro. Dopo che uno sviluppatore ha apportato modifiche alla propria copia di lavoro, le ha quindi svn commit che inviano le modifiche al repository. Gli altri sviluppatori del team eseguiranno svn update per ottenere tali modifiche dal repository nelle loro copie funzionanti.

5) Ultimamente non ho letto il libro SVN, ma penso che ti istruisca a copiare la versione del ramo del fornitore nel trunk, non a esportarlo. Esportare in termini SVN significa annullare la versione dell'albero delle directory, che chiaramente non è quello che desideri.

Potresti trovare le cose più facili se esegui i passaggi 6 e 7 subito dopo il passaggio 2, poiché da allora puoi utilizzare il protocollo svn: // per accedere al tuo repository per i passaggi rimanenti invece di file: // come suggerito da Davide, che funziona solo sul computer locale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top