Domanda

Sto introducendo Subversion nel nostro negozio web.Voglio che i file archiviati vengano caricati sul server tramite FTP (e man mano che si abituano a Subversion, tramite SFTP).I file vengono inviati a una pagina di release candidate a scopo di test.È possibile richiamare uno script per spostare i file in produzione.

La mia domanda è questa:Come trasferisci i file sul server tramite Subversion?Esiste uno script che posso aggiungere che effettuerà il trasferimento una volta archiviati i file?

È stato utile?

Soluzione

Se hai accesso shell al tuo server e SVN installato su di esso (o la possibilità di installare SVN), la tua scommessa migliore potrebbe essere solo quella di bypassare completamente FTP.

Il modo in cui distribuiamo le nostre app è (semplificato)

  • Gli sviluppatori scrivono il codice e lo controllano nel trunk
  • Periodicamente, quando il trunk è stabile, faremo una sua istantanea come tag
  • Sul server, svn verifica il tag

Se è necessario apportare modifiche al server (o direttamente sul server live stesso) è banale utilizzare sovversione per sincronizzare il codice

Altri suggerimenti

Si desidera creare uno script che utilizza l'hook post commit in SubVersion. Puoi esportare lo script dal tuo repository e quindi FTP sul server, oppure puoi semplicemente fare il checkout dal tuo repository in una directory di lavoro sul tuo server e chiamare " svn update " nella directory di lavoro dei server nello script hook post-commit.

Ulteriori informazioni nelle FAQ su Subversion

Penso che dovresti probabilmente usare svn export piuttosto che svn checkout per le distribuzioni, quindi non hai quelle directory .svn che confondono i tuoi processi di backup di produzione. svn export è un " clean " cassa.

Vorrei anche creare uno script che gestisca tutto per te. A seconda di come è strutturato il codice, spesso è possibile eseguire la versione delle directory e aggiornare un collegamento simbolico all'ultima versione, il che semplifica i rollback.

Puoi persino usare qualcosa come Capistrano per automatizzare le implementazioni. Tuttavia, secondo la raccomandazione per CruiseControl.

Penso che quello che stai cercando sia qualcosa come l'integrazione con uno script di compilazione automatico. Ho usato CruiseControl per fare qualcosa di simile con un'applicazione ASP.Net. Non conosco i tuoi esatti requisiti, ma scommetto che potresti farlo per fare quello che vuoi.

Gli script post commit sono utili per questo. Essenzialmente su ogni commit viene chiamato uno script dopo l'evento, che puoi usare per eseguire un'esportazione svn ovunque.

Un interessante articolo mostra come ciò potrebbe essere fatto, e questo mostra come gli script hook possono essere usati con sovversione

Probabilmente puoi usare l'SVN " hooks " per fare questo. Fondamentalmente, puoi configurare il tuo server per eseguire script prima o dopo ogni check-in. Ecco il link diretto alla sezione pertinente del libro online .

Io secondo l'idea di Orione. Se hai l'accesso shell al server, in realtà è estremamente facile usare Subversion stesso come strumento di distribuzione. Assicurati solo di aver impostato alcune regole del server Web in modo da non esporre accidentalmente le directory .svn.

svn2web eseguirà il ftp o scp dei file da un repository di sovversione a un server web ad ogni commit. Vedi il SourceForge per i dettagli.

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