2010-10-27 3 views
16

Nel mio progetto ho molte cartelle. Certamente so che voglio avere cambiamenti solo in pochi file (circa 15) ciascuno di essi è in 7 cartelle diverse. Inoltre, non voglio controllare l'intera fonte per realizzarlo. È possibile effettuare il checkout solo delle cartelle richieste?Come eseguire il checkout di alcuni file e cartelle da solo senza estrarre l'intera fonte

Avrò questo scenario troppo spesso per fonti diverse. È possibile effettuare il checkout solo delle cartelle selezionate in un colpo solo?

Modifica

diciamo per esempio ho una cartella di origine contiene. 5 sottocartelle. Come,

fonte

- Nucleo

- Helper

- Estensioni

- Temi

- Risorse

E, Voglio estrarre solo le cartelle Estensioni e Temi. Ma, non voglio estrarre separatamente ciascuna delle cartelle. Lo voglio, darò il check-out come svn.svnhost.com/trunk/project1/source. [Poi, io seleziono Extensions e Themes dare un unico check-out]

Checkout atteso:

fonte

- Estensioni

- Temi

Qualche cosa di simile:

svn co svn.svnhost.com/trunk/project1/source --foldernames Extensions, Themes 

risposta

20

A parte solo controllando le cartelle che si desidera (che funziona solo se si desidera che l'intero albero sottocartella pure), Subversion 1.7 supporta qualcosa di cui come "sparse directories". Fondamentalmente è possibile eseguire il checkout di una cartella fino a una certa profondità e quindi "eseguire il drill-down" nelle cartelle a cui si è interessati.

Utilizzando il client della riga di comando, si utilizzano le opzioni --depth e --set-depth su svn update. Se si utilizza TortoiseSVN, è presente un'opzione "Deposita profondità" nella finestra di dialogo di checkout.

EDIT: Per chiarire la tua domanda specifica, devi prima eseguire il checkout del tuo albero di origine con profondità "immediatamente". Questo ti darà tutte le tue cartelle, ma inizialmente saranno vuote. Quindi è possibile eseguire il drill down nei estensioni e temi directory aggiornando loro di profondità "pienamente ricorsivo" (svn update --set-depth infinity o in TortoiseSVN "Aggiornamento alla revisione → Aggiornamento Profondità → "Fully ricorsiva").

EDIT : La profondità dell'aggiornamento può essere vista come una sorta di "livello di visibilità", ed è ricordata da Subversion, cioè se si fa un svn update sulla propria copia di lavoro, si aggiornerà solo al livello di visibilità corrente

+0

@JasperE Ma, non posso farlo con un singolo comando svn, giusto? Non importa, il metodo sopra menzionato 'immediatate' risparmia molto tempo. :) –

+0

No, hai bisogno di più comandi. OTOH, puoi applicare questa tecnica in maniera ricorsiva se per esempio vuoi solo controllare parti delle directory Extensions o Themese. – JesperE

+0

Questa è in realtà una funzione piuttosto interessante, anche se non si adatta molto bene alla mia situazione. Inoltre, non puoi ** ridurre ** il livello di visibilità; quindi se hai impostato la profondità su infinito, non c'è modo di ridurla (sfoltire) senza controllare di nuovo tutto. – JesperE

1

Nel navigatore Tortoise (tasto destro del mouse) passare a una cartella specifica ed eseguire checkout contro la posizione

+0

Ho aggiornato la mia domanda. Si prega di controllare. –

5

Sì, Vedere se si dispone di un indirizzo Repository come:

https://elastik.svn.sourceforge.net/svnroot/elastik/ 

Basta aggiungere la cartella desiderata fino alla fine. Quindi, se voglio solo il "tronco/include" cartella:

https://elastik.svn.sourceforge.net/svnroot/elastik/trunk/includes 
2

So questo la domanda ha più di 5 anni, ma la mia risposta può aiutare coloro che guardano a t la sua domanda ora.

Uso la versione SVN di tartaruga verion 1.9, ha un'opzione "scegli elementi" prima del checkout. Possiamo scegliere cartelle/file richiesti per il checkout dal browser del repository. enter image description here

+0

Quindi come si traduce in comandi svn effettivi? – Nyerguds