2013-02-06 14 views
6

Ho letto molto Q/A qui sul significato delle directory "branch", "tag" e "trunk" in i repository SVN, e come ora penso di aver capito, sto cercando di implementarlo.Implementazione di SVN "branch", "tag" e "trunk" con compositore e file di configurazione

Uso Virtualmin per gestire il mio server e crea repository tramite la sua GUI Web. Tuttavia, una volta creato il mio repository è vuoto, quindi credo di aver bisogno di creare la struttura della directory e di eseguirne il commit. Una volta fatto, metto i file del mio progetto nel trunk, e dato che sono a uno stato di versione stabile, dovrei diramarlo su branch/xxx (che sarà un punto di salvataggio nel mio sviluppo), e su tags/xxx (che sarà la mia versione di sviluppo).

Se ho ragione fino a qui, poi passo con Tortoise al mio nuovo tag, e questo è solo quello che verrà cambiato nei miei prossimi commit. A proposito, con Tortoise, avrò bisogno di fare clic con il pulsante destro sulla directory dei tag corrente, o sarò ancora in grado di eseguire il commit/ripristino direttamente dalla cartella principale del mio progetto?

Il mio progetto corrente ha un file di configurazione che definisce un paio di percorsi assoluti - forse è sbagliato ma non ho trovato alcun modo per evitarlo. Dato che voglio essere in grado di vedere il mio progetto in esecuzione da uno di questi rami/trunk, significa che avrò bisogno di un file di configurazione diverso per ogni versione? In tal caso, dovrei aggiungere questo file alla lista di ignora? Intendo cosa sarebbe considerata una buona pratica?

Domanda aggiuntiva: se voglio utilizzare Composer in questo caso, dove dovrebbe essere la mia directory composer.json e del venditore?

Grazie!

risposta

8

Stai confondendo tag e rami. I tag non dovrebbero essere modificati. Generalmente vengono creati (dal trunk o da un ramo) ogni volta che si esegue un rilascio dell'applcation.

I rami vengono utilizzati per contenere lavori in corso.

È necessario eseguire il checkout della directory principale per una copia di lavoro. Per passare a un ramo, utilizzare il comando switch. Non c'è motivo di avere file di configurazione separati per ogni ramo, una copia di lavoro sincera, nella stessa posizione, può indicare tutto ciò che si desidera: tronco, un ramo o anche un tag. Il punto chiave è che la radice della copia di lavoro dovrebbe essere la radice del vostro progetto:

Così, supponiamo che i file di progetto contiene i seguenti file:

index.php 
config.txt 
some_folder 
    foobar.php 

tuo repo avrebbe la seguente disposizione:

trunk 
    index.php 
    config.txt 
    some_folder 
     foobar.php 
branches 
    maintenance_1.0 
     index.php 
     config.txt 
     some_folder 
      foobar.php 
    feature_refactor_index_page 
     index.php 
     config.txt 
     some_folder 
      foobar.php 
tags 
    v1.0 
     index.php 
     config.txt 
     some_folder 
      foobar.php 

E la vostra copia di lavoro potrebbe essere:

MyProject --> references trunk 
    index.php 
    config.txt 
    some_folder 
     foobar.php 

Se si desidera lavorare sul ramo di caratteristica, passare al ramo, e la vostra copia di lavoro sarà quindi

MyProject --> references feature_refactor_index_page 
    index.php 
    config.txt 
    some_folder 
     foobar.php 

quindi sarebbe exacttly lo stesso, e non c'è alcun motivo per il file di configurazione per contenere percorsi di file differenti.

+0

Trovato! Grazie! :) – Nabab

Problemi correlati