2012-07-25 9 views
36

Ho un progetto SVN con l'albero in questo modo:svn profondità cassa

/project 
    /dir1 
     /subdir1 
      -file1 
      -file2 
      ..... 
     -file1 
     -file2 
     ..... 
    /dir2 
     -file1 
     -file2 
     ..... 
    /dir3 
     /subdir1 
      -file1 
      -file2 
      ..... 
     /subdir2 
      -file1 
      -file2 
      ..... 
     /subdir3 
      -file1 
      -file2 
      ..... 
     /subdir4 
      -file1 
      -file2 
      ..... 
    /dir4 
     -file1 
     -file2 
     ..... 
-file1 
-file2 

ho bisogno di cassa

  • tutti i file da/progetto
  • pieno/dir1
  • pieno/dir2
  • completo/dir4
  • Da/dir3 Ho bisogno solo/subdir1 e/subdir3

Posso controllare questi file/cartelle utilizzando la linea di comando svn con qualche tipo di profondità? Se sì, come posso farlo? Posso aggiungere subdir2 a dir3 dopo un checkout? Come posso aggiornare la copia di lavoro creata in questo modo? Il normale comando "svn up" aggiornerà solo queste cartelle o verrà eseguito l'aggiornamento completo del progetto?

risposta

54

Quello che ti serve è chiamato sparse checkout.

Nel tuo caso è possibile:

svn co --depth files file:///project project 
cd project 
svn up --set-depth infinity dir1 dir2 dir4 
svn up --set-depth empty dir3 
svn up --set-depth infinity dir3/subdir1 dir3/subdir3 

Posso aggiungere subdir2 a dir3 dopo un checkout?

Sì: svn up --set-depth infinity dir3/subdir2

copia Come posso aggiornare lavoro creato in questo modo? Sarà normale l'aggiornamento del comando "svn up" solo queste cartelle o l'aggiornamento completo del progetto sarà eseguito ?

Sì, svn up aggiornerà solo questi file e cartelle, ovvero la profondità di aggiornamento verrà mantenuta.

+0

Grazie lot.So se ho ben capito se verrà aggiunta una nuova cartella (ad esempio dir5) per proiettare non lo faràessere aggiornato. Ho ragione? –

+0

Sì, la cartella principale di dir5 ha la profondità impostata su 'files', quindi i nuovi file verranno aggiornati, ma non nuove cartelle. – ks1322

+3

Se si desidera aggiungere automaticamente nuovi sottodirectory di primo livello, usare '--depth immediates' invece di' --depth files' dovrebbe fare il trucco. –

0

1) svn up --set approfondito percorso del file/cartella vuota

// sarà eliminare il file dal sistema

2) svn up di file all'infinito --set approfondita/percorso della cartella

// verrà rigenerato il file dal server sVN al sistema locale