Menu Chiudi

Profili di Unison

unison crea una directory che utilizza per memorizzarsi le varie configurazioni e informazioni di cui ha bisogno per funzionare. A seconda del sistema operativo, questa sarà:

unison crea una directory che utilizza per memorizzarsi le varie configurazioni e informazioni di cui ha bisogno per funzionare. A seconda del sistema operativo, questa sarà:

  • $HOME/.unison su tutti i sistemi operativi veri
  • $USERPROFILE.unison su alcuni Widows
  • $HOME.unison su altri Widows
  • C:.unison su altri Widows ancora…

Questa directory può contenere una serie di file .prf: si tratta dei profili, semplici file di testo che contengono la configurazione di un particolare sincronismo. Uno di questi in particolare, default.prf, viene caricato da tutte le sessioni unison e pertanto può contenere le impostazioni tipiche.

Tutte le opzioni disponibili sulla linea di comando possono essere impostate anche utilizzando un profilo.

unison utilizza quella directory anche per memorizzarvi lo stato dei vari sincronismi. Lo fa salvandolo in file dal nome strano, del tipo arc5711989c7816bf57c15c3d036de43c6. Non vale la pena di leggerli… e non succede nulla di grave nel cancellarli… la prossima sessione ci metterà un po’ di più, tutto lì.

Esempio di profilo

Un esempio pratico: sulla macchina dove sviluppo, voglio ad un certo punto congelare tutta una serie di programmi e renderne disponibile la versione corrente. Per facilitarmi la cosa, ho creato nella directory /WiP/.freeze una gerarchia di link simbolici, che puntano ai vari programmi, librerie e documenti che voglio distribuire. Alcune sottodirectory invece devono essere estratte direttamente dal CVS. In quella directory ho quindi uno script, aggiorna.sh, che contiene:

echo -n "Aggiorno i metadati del DB..." 
rm -rf Database
cvs -Q -d/home/cvs export -kv -D now -d Database MetadatiDB
echo " fatto!"

echo -n "Aggiorno gli script SQL..."
rm -rf ScriptsSQL
cvs -Q -d/home/cvs export -kv -D now -d ScriptsSQL ScriptsSQL
echo " fatto!"

echo "Sincronizzo con /home/ftp/VersioneCorrente..."
unison -terse VersioneCorrente
echo " Freeze completato!"

mentre in $HOME/.unison/VersioneCorrente.prf ho scritto:

# Descrizione che appare nella GUI 
label = Fai una snapshot dei miei lavori

# Mantieni sincronizzata questa directory...
root = /WiP/.freeze

# ... con questa
root = /home/ftp/VersioneCorrente

# Non copiare i link simbolici, ma seguili
follow = Regex .*

# Non copiare lo script di aggiornamento
ignore = Name aggiorna.sh

A questo punto, ogni volta che faccio un passetto avanti e produco qualche cosa di buono da testare, vado nella directory WiP/.freeze, lì eseguo aggiorna.sh, e il tutto si compie.

WordPress Appliance - Powered by TurnKey Linux