2012-04-04 10 views
7

Ho un repository Subversion chiamato 'repo'. All'interno del pronti contro termine sono tronco/e diramazioni/directory. All'interno di rami/ci sono diverse decine di rami di rilascio, ad es. 1.0 /, 1.1 /. Questi rami/directory contengono un'applicazione relativamente grande.Come recuperare un Subversion esterno senza recuperare tutte le altre directory e sottodirectory

Desidero aggiungere un esterno alla radice del repository, chiamato "mioExternal". Quando definisco l'esterno, l'unico modo per ottenere SVN per creare la directory myExternal/è eseguire "svn up" dalla root del repository. Tuttavia, questo causerà anche l'intero contenuto delle filiali/da verificare, il che è inaccettabile (abbiamo molti sviluppatori che hanno bisogno di ottenere il mio External/aggiunto alla loro copia del repository e non possono avere tutti quelli che controllano i gigabyte di rami non necessari).

Ho provato 'svn up --set-depth immediates', ma questo non sembra ottenere gli aspetti esterni. C'è un modo per dire a svn di recuperare myExternal/senza recuperare tutti i rami /?

Utilizzo di SVN 1.7.

risposta

4

Sì, questo è il problema noto di subversion externals are not created unless depth=infinity.

penso che ci sia alcun modo di ridisegnare la struttura di directory in modo che myExternal è collegato non al repo ma alle sue sottocartelle, ad esempio impostato su /trunk e ogni cartella in /rami.

Oppure è possibile creare uno script che in un primo momento recupera immediates di pronti contro termine e poi va a prendere gli esterni impostati sul repo (che si può ottenere con la lettura proprietà di pronti contro termine: svn propget svn: gli esterni).

6

Gli esterni sono solo svn checkout in modo da poterli verificare manualmente.

Si potrebbe anche utilizzare un comando come questo. Potrebbe essere necessario modificarlo un po 'se i tuoi esterni sono in un formato diverso.

svn propget svn:externals | awk '{print $2, $1}' | xargs -L1 svn co 
+1

'svn propget svn: externals | xargs -L1 svn co' nel mio caso ha funzionato –

+0

svn propget svn: externals | sed -e 's//. \ //' | sed -e 's/\' // g '| xargs -L1 svn ha collaborato per me – TCS

+0

Avrei dovuto chiarire che stavamo già semplicemente controllando manualmente. La mia intenzione era di vedere se esistesse un modo nativo per farlo con il "checkout" iniziale – erich8