Canali
![]() Ultime news
![]() Ultimi articoli
![]() Le ultime dal Forum |
![]() Eseguire automaticamente un "update" ad ogni "commit" con Subversion (SVN)26/10/2011 - A cura di
Zane.
![]() Correlati![]() Tag
Il pezzo che stai leggendo è stato pubblicato oltre un anno fa.
![]() Nel corso dell'articolo "Guida: predisporre un server Subversion (SVN) su CentOS" abbiamo visto come installare questa potentissima soluzione per il controllo di versione. Se avete scelto lo strumento quale base per gestire un progetto software (e, in particolare, lo sviluppo di un sito web), avrete probabilmente già notato che, dopo aver inviato le modifiche al server dalla vostra macchina di lavoro, è necessario lanciare manualmente il comando svn update prima che i file "escano" dal database di SVN e siano concretamente scritti in una cartella sul file system utilizzabile dagli altri programmi. Ebbene: grazie al meccanismo degli "hook" (letteralmente "gancio"), il server stesso può eseguire automaticamente qualsiasi operazione al verificarsi di determinati eventi quali, appunto, l'"update" dei file contenuti in una cartella di lavoro locale in seguito al "commit" di nuovo materiale. Preparare lo spazioPer prima cosa, assicuratevi di aver predisposto una cartella sul server nella quale Subversion passa scrivere, di volta in volta, la copia più aggiornata del vostro lavoro. Se ancora non l'avete, aprite il terminale (menu Applications -> Accessories -> Terminal) ed impartite mkdir -p /home/sitoweb/htdocs. Potete, naturalmente, usare un percorso qualsiasi o creare la stessa directory tramite l'interfaccia grafica impiegando Nautilus. Eseguire il primo "checkout"Procedete ora con il primissimo "checkout" del materiale nella directory in questione, ovvero (mi concedano la banalizzazione i più esperti), la procedura tramite il quale SVN crea i file in una cartella designata e "lega" le due componenti. Se avete seguito le indicazioni fornite nella guida all'installazione di Subversion, il vostro repository si trova in /repo ed il progetto di esempio in /repo/mioprogetto1. Per procedere con il checkout, lanciate svn co file:///repo/mioprogetto1 /home/sitoweb/htdocs avendo cura, chiaramente, di sostituire i due percorsi con quelli che avete effettivamente scelto sulla vostra macchina. Il terminale dovrebbe ora mostrare la dicitura Checked out revision X, segno che l'operazione è stata completata. Automatizzare l'updatePer ottenere l'automazione ricercata, dovete creare un script di nome post-commit (senza estensione!) all'interno della sottocartella hooks del vostro progetto. Lanciate quindi gedit /repo/mioprogetto1/hooks/post-commit da linea di comando per creare un nuovo file nella posizione appropriata ed incollatevi queste due righe:
Salvate il documento, chiudete gedit, ritornate al terminale e assicuratevi che lo script sia dotato dei permessi appropriati per l'esecuzione lanciando chmod ugo+x /repo/mioprogetto1/hooks/post-commit Non sono sicuro che sia indispensabile, ma vi raccomando di riavviare infine il servizio con service svnserve restart. Provare il tuttoA questo punto, dovrebbe essere tutto pronto. Provate a creare un nuovo file (oppure a modificarne uno esistente) sul client e procedete con il "commit": le stesse variazioni dovrebbero riflettersi immediatamente anche sulla copia presente sul file system del server. Andare oltreNulla vi vieta di eseguire anche altre operazioni all'interno del file post-commit! Non dovete fare altro che elencare i comandi, uno sotto l'altro, nelle righe successive dello script: se avete installato il pacchetto di invio della posta, ad esempio, potete aggiungere qualcosa di simile per spedirvi una e-mail ad ogni nuova revisione: mail -s "Nuovo commit" "vostroindirizzo@gmail.com" "Il progetto $1 è stato appena portato alla revisione $2" Segnala ad un amico |
© Copyright 2025 BlazeMedia srl - P. IVA 14742231005