2011-08-31 8 views
6

Ecco il mio dilemma:SVN Checkout una singola directory

voglio checkout una singola directory (chiamiamola A) da SVN, ma essere in grado di fare e svn up Un dalla directory principale del computer è controllato.

, ad es. I am in ~/coolstuff Voglio fare un checkout di A e metterlo in ~/coolstuff e quando sono in ~/coolstuff voglio emettere svn up e aggiornarlo A.

Ecco un trucco per fare ciò in uno scenario di base: Nella directory padre di SVN A è Z. Eseguo un controllo SVN di Z in ~/coolstuff. Quindi mv ~/coolstuff/Z/.svn in ~/coolstuff. Walla I può fare un svn up e funziona e tirerà giù A all'interno di ~/coolstuff.

Il mio scenario: Io faccio la stessa cosa sopra, tranne il problema è che Z non ha solo il bambino A, ma ha anche il bambino B. Quindi un svn in ~/coolstuff tirerà giù A e B Ma non voglio che B venga abbattuto.

ecco la soluzione: mi modificare ~/Coolstuff/.svn/voci e rimosso il riferimento a B. Ora svn non vede B, solo A.

La soluzione di cui sopra ancora iniziale tira giù A quando faccio il primo checkout, non voglio farlo. Sembra anche molto hack-ish. C'è un modo migliore/più pulito per farlo e, si spera, non sia necessario abbattere "B"?

+9

Si prega di lavorare sulla scrittura di domande migliori. "abbassa B quando faccio A su Z attraverso X su Y senza fare C" rende le cose molto difficili da leggere e da seguire. Usa nomi che rappresentano più accuratamente ciò che stai facendo, così le persone non devono perdere tempo a cercare di capire tutti i nomi immaginari e possono invece concentrarsi per aiutarti a risolvere il tuo problema. Grazie. :) –

risposta

9

Credo che questo è ciò che si vuole fare:

svn co --depth empty file://path/to/A-B/parent coolstuff 
cd coolstuff 
svn up A 

Ora si può fare un svn up dall'interno Coolstuff aggiornare A senza tirare automaticamente in B.

+0

Questo è esattamente quello che volevo. Ho provato ad usare depth depth, ma non tirerò giù "A" quando si esegue il cd in coolstuff. Perfetto grazie mille! – MrD