Domanda

Il mio normale flusso di lavoro per creare un nuovo repository con sovversione è quello di creare un nuovo repository, fare un checkout della radice dei repository, creare i tag dei rami e le cartelle dei trunk e inserire nel trunk i miei file iniziali. Quindi eseguo il commit di questa "importazione iniziale", elimino i repository estratti dal mio disco rigido ed eseguo un checkout del trunk. Quindi posso iniziare a lavorare.

Tuttavia, quando si ha a che fare con un'importazione di grandi dimensioni, si pensi a centinaia di mega e all'hosting di controllo di versione off-site (basato su http) questa importazione iniziale può richiedere parecchio tempo per impegnarsi. Quel che è peggio, dopo essermi impegnato, devo ricontrollare questo enorme baule.

Esiste un modo con Subversion per utilizzare la copia locale del trunk senza effettuare nuovamente il checkout dei dati già presenti?

È stato utile?

Soluzione

Esiste - si chiama "importazione sul posto", ed è trattata nelle FAQ di Subversion qui:

http://subversion.tigris.org/faq.html#in -posto-import

Quello che stai veramente facendo è creare un nuovo progetto vuoto nel repository, controllare il progetto vuoto della cartella locale - che trasforma la tua cartella in una copia funzionante - e quindi aggiungere tutti i tuoi file (esistenti) a quel 'vuoto ", quindi vengono aggiunti al repository quando si esegue un commit svn.

Altri suggerimenti

Acconsento all'importazione sul posto " procedura e anche l'utilizzo di uno script per la struttura TTB (entrambi votati).

Solo un piccolo suggerimento:

Non devi importare un enorme (diecimila) numero di file in un unico commit, se usi http (s), poiché il tempo per visualizzare la cronologia delle versioni viene ridimensionato di il numero di voci aggiunte . Il motivo di questo comportamento è che apache deve autenticare tutti i percorsi aggiunti nuovamente il file svnaccess (ovviamente, solo se hai abilitato l'autorizzazione basata sul percorso). Ciò può rendere il repository inutilizzabile, poiché tutti i file dovranno attendere su un registro svn per questo grande giro.

Dovresti dividere enormi importazioni a livello di directory

Di solito uso " svn mkdir " per creare il trunk / tag / rami direttamente sul server immediatamente dopo aver creato il repository. Quindi posso controllare il trunk vuoto, spostare i miei file iniziali in quella directory, aggiungerli, eseguirli e iniziare a lavorare.

svn checkout --force ti consente di effettuare il checkout di una copia di lavoro "su" un percorso esistente. Mantiene i tuoi vecchi file e aggiunge file che sono solo nel tuo repository.

Per creare il tuo repository: puoi eseguire più comandi mkdir in un repository in un unico commit usando il comando 'svnmucc' che è disponibile nella maggior parte delle distribuzioni Subversion (es. SlikSVN ).

Digita svnmucc senza argomenti per un po 'di aiuto.

Se hai estratto una singola cartella, copiato i tuoi file in essa, esegui svn add e svn commit ; non dovresti aver bisogno di cancellare i file e ricontrollare.

Usa i file sul posto: una volta che sono stati impegnati come descrivi, sono pronti per essere elaborati.

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