2009-06-27 20 views
17

Ho un sito web sotto svn e voglio applicare una patch al sito web in diretta con ciò che è attualmente nel repository (cioè efficacemente chiamando svn update sul sito web live), ma non voglio directory .svn in ogni cartella del sito Web di produzione.svn checkout e aggiornamento senza la directory .svn

C'è un modo per impostare svn in modo che la cartella .svn con le informazioni sulla versione non sia nella stessa directory dei file sotto controllo di versione?

In git è possibile creare e dividere un albero di lavoro e inviare aggiornamenti ad un progetto in questo modo (in base allo http://toroid.org/ams/git-website-howto), in pratica voglio essere in grado di fare qualcosa di simile in svn.

+0

In realtà stavo pensando di rsync per una git rintracciato sito web, quindi grazie per il suggerimento. Post scriptum svn era solo un passo evolutivo, ormai di interesse solo storico. grazie ancora! –

risposta

37

svn export funziona in modo simile a checkout ma senza le directory .svn. Tuttavia, non è possibile creare una struttura simile a update poiché non è una copia funzionante.

È inoltre possibile configurare il server Web in modo da disabilitare l'accesso alle directory .svn e utilizzare solo il metodo di pagamento + aggiornamento.

+1

Vedere questa domanda per informazioni su come eseguire la seconda opzione: http://stackoverflow.com/questions/214886/how-do-i-hide-directories-in-apache-specifically-source-control –

7

E a proposito di rsync configurato per non copiare le directory ".svn"?

rsync --exclude=.svn local_svn_copy webserver:site/

Questo può essere ri-run per aggiornare la copia del server web.

1

Come laalto ha accennato svn export fa per un metodo facile, ma non molto efficiente per l'aggiornamento di una "copia di lavoro", quando usato ripetutamente:

[email protected]:~$ svn export --non-interactive --force "<URL>" <directory> 
1

Si potrebbe anche usare git-svn per creare uno specchio git del sito e quindi pubblica la modalità descritta nell'articolo che hai collegato. Ovviamente questa non è una soluzione semplice.

2

httpd.conf:

<Directory ~ "\.svn"> 
    Order allow,deny 
    Deny from all 
</Directory> 
Problemi correlati