Technology Experience
Senza categoria

[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:

  1. Apriamo Visual Studio 2010 e creiamo un’applicazione Silverlight 4
  2. Visto che ci siete, compilate l’applicazione
  3. Andiamo in Esplora Risorse e creiamo il repository cliccando col destro sulla cartella contenente la solution, usando il menù contestuale di TortoiseHG
  4. 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:

mercurial_ignore_filters

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:

  1. Questi filtri vengono salvati nel file .hgignore, dentro la cartella repository
  2. 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
  3. 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.

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.