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.

È stato utile?

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ò.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top