svn checkout e aggiornamento senza la directory .svn
-
20-08-2019 - |
Domanda
Ho un sito Web sotto svn e voglio patchare il sito Web live con ciò che è attualmente nel repository (ovvero chiamare effettivamente svn update sul sito Web live), ma non voglio directory .svn in ogni cartella della produzione sito web.
Esiste un modo per impostare svn in modo che la cartella .svn con le informazioni sulla versione non si trovi nella stessa directory dei file sotto il controllo della versione?
In git è possibile creare e catturare un albero di lavoro e inviare gli aggiornamenti a un progetto in questo modo (secondo http://toroid.org/ams/git-website-howto ), in pratica voglio essere in grado di fare qualcosa di simile in svn.
Soluzione
svn export
funziona in modo simile a checkout
ma senza le .svn
directory. Tuttavia, non puoi update
una tale struttura poiché non è una copia funzionante in formato svn.
Puoi anche configurare il web server per impedire l'accesso alle <=> directory e andare semplicemente con il metodo checkout + update.
Altri suggerimenti
Che ne dici di rsync configurato per non copiare " .svn " directory?
rsync --exclude=.svn local_svn_copy webserver:site/
Questo può essere rieseguito per aggiornare la copia del server web.
httpd.conf:
<Directory ~ "\.svn">
Order allow,deny
Deny from all
</Directory>
Come menzionato laalto svn export
costituisce un metodo semplice ma non molto efficiente per l'aggiornamento di un " copia di lavoro " se usato ripetutamente:
milen@dev:~$ svn export --non-interactive --force "<URL>" <directory>
Puoi anche usare git-svn
per creare un mirror git del sito web e quindi pubblicare il modo descritto nell'articolo che hai collegato. Ovviamente questa non è una soluzione semplice però.