Svn:Come effettuare il checkout di alcune directory ed essere comunque in grado di aggiornare a root
-
27-09-2019 - |
Domanda
Ho un progetto SVN al lavoro che assomiglia a questo:
Deposito
project |-- docs |-- scripts `-- app |-- trunk |-- branches | `-- development `-- tags |-- Release_1.0 |-- ... `-- Release_5.3
Voglio la mia cartella di lavoro in questo modo:
Copia funzionante
dir_root |-- docs |-- scripts |-- trunk `-- branches `-- development
Vorrei eseguire il commit del codice da "dir_root/trunk" e "dir_root/docs" contemporaneamente in un commit per avere solo 1 numero di revisione.
Come posso effettuare il checkout per ignorare la cartella "tags" ed essere comunque in grado di impegnarmi in più directory.
Nota:
- Non riesco a controllare tutto il repository perché "tags" contiene troppe versioni.
- Ho provato a utilizzare directory sparse, ma continua a darmi questo errore "svn:'/dir_root' non è una copia funzionante"quando provo a impegnarmi.
Soluzione
Dall'errore sembra che ciascuna delle cartelle sotto dir_root
è stato effettuato il checkout separatamente.Così dir_root
di per sé non corrisponde project
cartella nell'SVN.
Potresti iniziare facendo il check-out project
con --depth immediates
in dir_root
.Questo creerà una struttura di cartelle simile a quella in SVN nel tuo dir_root
.Successivamente puoi aggiornare le sottocartelle che ti interessano (es. docs
, trunk
, eccetera.).Una volta fatto ciò, puoi apportare modifiche ai contenuti ed eseguire un singolo commit da dir_root
che contengono modifiche a dir_root/trunk
E dir_root/docs
.
Altri suggerimenti
Creare una directory con svn:externals con la struttura che hai menzionato risolverà il tuo problema.