[Mercurial.5] Primi passi di Mercurial con un progetto Silverlight
I concetti base esposti nei post precedenti rimangono ovviamente validi, ma li voglio riassumere qui velocemente:
- Apriamo Visual Studio 2010 e creiamo un’applicazione Silverlight 4
- Visto che ci siete, compilate l’applicazione
- Andiamo in Esplora Risorse e creiamo il repository cliccando col destro sulla cartella contenente la solution, usando il menù contestuale di TortoiseHG
- Aggiungiamo i files usando il menù TortoiseHG –> Add Files
Se avete seguito questi passaggi, vi siete appena sentiti male, perchè l’elenco che TortoiseHG vi propone di aggiungere al repository sono un po’ troppi. Questo, secondo me, è un pregio ed un difetto di Mercurial. Siccome potete usare questo CVS per qualsiasi cosa (e non per forza su progetti .NET), non sa a priori quali estensioni e quali cartelle filtrare. Quindi, TortoiseHG vi mette in elenco files eseguibili, dll, xap, pdb, tutto ciò che è contenuto in /bin/Debug o in /obj/Debug, etc. etc. Se ci fossero documenti Word o fogli Excel, ci sarebbero stati anche loro.
Ovviamente è possibile rimediare a tutto ciò. Basta andare nel menù TortoiseHG –> Edit Ignore Filter ed inserire uno o più filtri per eliminare la “sporciziaâ€. Ecco come appare il tool per l’editing di questi filtri, e come l’ho configurato io:
Ho inserito le seguenti voci:
*/Bin/Debug/*
*.xap
*.dll
*/obj/Debug/*
*/bin/*
Man mano che inserite questi filtri, l’elenco sulla destra si aggiorna, mostrandovi il contenuto effettivo. Se avete fatto tutto bene, TortoiseHG vi propone l’Add Files e successivamente il Commit dei files *.cs, *.xaml, *.xml, *.csproj, etc. etc.: tutto il contenuto sorgente della vostra solution.
A questo punto, due piccole note:
- Questi filtri vengono salvati nel file .hgignore, dentro la cartella repository
- Questo file secondo me va committato a sua volta nel repository: in questo modo, un altro componente del team che “clona†il vostro repository (operazione che non abbiamo ancora preso in considerazione) automaticamente eredita questi filtri, e non dovrà reimpostarseli manualmente
- Non è detto che dobbiate escludere le dll: se utilizzate assembly di terze parti (controlli e/o librerie) queste vanno aggiunte al repository, esattamente per gli stessi ragionamenti espressi al punto (2)
Ovviamente non tutto è scolpito nella pietra. Io stesso utilizzo Mercurial da relativamente poco tempo, per cui tutto questo è opinabile e assolutamente aperto a critiche: non c’è nemmeno bisogno di dirlo.
Ho volutamente preso un progetto Silverlight perchè, come è facile intuire, la compilazione genera diversi files eseguibili, e la cosa si prestava bene per spiegare i filtri.
Conclusione
Detto questo, possiamo aggiungere e committare i files senza paura di versare nel repository strani files che non vogliamo nemmeno vedere. Quando committeremo da Visual Studio, i tools saranno esattamente gli stessi di quelli avviati da Esplora Risorse, per cui quello che abbiamo fatto è tutto utile.