2011-12-11 15 views
14

Supponiamo che un repository SVN a distanza ha questa struttura:Salta la directory nella cassa SVN? (Checkout parziale)

/project 
     /src 
     /bulk 

Ora, per qualche ragione ho già una copia di bulk (assunto immutabile o raramente cambiando) altrove sulla mia macchina. Posso in qualche modo eseguire il checkout di una nuova copia del repository, ma pre-fornire la directory bulk in modo che non venga scaricata di nuovo?

Per chiarire, questo processo ipotetico dovrebbe certamente verificare i checksum sui file nella directory bulk e aggiornare quei file che non sono corretti, in modo che alla fine avrò un checkout completo e coerente. Voglio solo scorciatoia dopo aver scaricato quei file che ho già eseguito testualmente.

+0

Non penso ma, cosa più importante, ciò porta al problema che il repository SVN non è più autorevole. Inoltre, per quanto riguarda gli altri (incluso il tuo futuro io - su un'altra macchina) che non hanno il grosso magico. Cos'è esattamente sfuso? Dati, libreria di terze parti potrebbe aiutarci a indirizzarti verso una best practice. –

+0

@SteveRobillard: La massa magica fa parte del repository (diciamo che è una raccolta di file sountrack). Mi è appena capitato di averli già scaricati, e voglio approfittarne. Sono molto contento che i checksum siano verificati e tutto questo! –

+0

Simile a https://stackoverflow.com/questions/192824/svn-checkout-ignore-folder –

risposta

26
  1. Checkout/progetto, specificare la profondità da "vuoto".
  2. Aggiornamento/progetto/src che specifica la profondità infinita.
  3. Copia la tua copia di lavoro di massa corrente nella copia di lavoro della directory del progetto.

ad es.

svn checkout --depth empty http://svnserver/project/ project 
svn update --set-depth infinity project/src 
// copy your current /bulk into /project 

Nota - questo sfrutta la sparse directories funzionalità introdotta in Subversion 1.5.

+2

Potrebbe spiegarlo un po 'di più per un principiante SVN completo? :-) –

+0

Se '/ bulk' non sta cambiando, e non hai intenzione di controllarlo dal repository, non è necessario che sia nel repository. Basta tenere la cartella '/ src' nel repository. – bdares

+0

@bdares: Non è il mio repo, però! :-) –

0

L'ultima volta che ho dovuto fare questo, ho avuto un numero enorme di file demo in una directory, e li ho semplicemente spostati in una nuova directory da trunk.

Si potrebbe considerare di fare qualcosa di simile e di aggiungere bulk a svn:ignore, se è necessario bulk essere nella stessa directory.

+0

Quindi vuoi dire che dovrei disaccoppiare il' bulk' dal controllo di revisione e basta usare la mia copia locale per il mio computer locale? Immagino che sia una soluzione, anche se speravo davvero di poter "seminare" il mio checkout con i file locali. –

+0

No, 'bulk' rimarrebbe nel controllo di versione, ma non in' trunk'. In questo modo sarai in grado di evitare un check-out di grandi dimensioni. –

1

istruzioni quando si utilizza TortoiseSVN 1.7 e successivi:

  1. "SVN Checkout" per/progetto, specificando "Checkout Depth" come "Solo questo elemento"
  2. "SVN Checkout" per/progetto/trunk, specificando "Profondità cassa" come "Completamente ricorsivo"
Problemi correlati