Blog Stats
  • Posts - 662
  • Articles - 3
  • Comments - 151
  • Trackbacks - 25

 

Saturday, August 30, 2008

Aggiornamento a Subtext 2.0

Simone lo aveva annunciato l’11 Agosto, ma ero a godermi il sole della Puglia, così ho aspettato oggi (primo gg in cui sono riuscito a trovare un po’ di tempo) per fare l’aggiornamento del blog engine alla versione 2.0 di Subtext.

Direttamente dal Post di Simone, ecco le principali novità:

In questo post, vengono inoltre citati altri piccoli (ma comodi) miglioramenti apportati.

Per l’aggiornamento, vi consiglio di seguire direttamente la guida ufficiale.

In tutto, mi ci è voluta un oretta tra dowload, ftp, configurazione, spostamento di immagini, skinn custom etc., ma tutto ha funzionato senza il minimo intoppo.

Se navigando sul blog doveste riscontrare qualche problema, contattatemi Smile.

Enjoy Smile

Technorati Tags: ,

[TFS]: Check-In policy skippate 2

Nel precedente post, ho mostrato come visualizzare i check-in eseguiti su TFS skippando le regole impostate. Subito dopo, Lorenzo e Janky mi hanno fatto notare nei commenti che si deve evitare di leggere/scrivere direttamente sul Data Base di TFS.

Team Foundation Server, come noto, espone un Object Model molto evoluto che, in sostanza, permette di farci qualsiasi cosa. Ed in effetti, è bastata un oretta per raggiungere praticamente lo stesso risultato con poche righe di codice:

   1: using System;
   2: using System.Collections;
   3: using Microsoft.TeamFoundation.Client;
   4: using Microsoft.TeamFoundation.VersionControl.Client;
   5:  
   6: namespace TFSTest {
   7:     class Program {
   8:         static void Main(string[] args) {
   9:             ICredentialsProvider provider = new UICredentialsProvider();
  10:             TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("mig-server", provider);
  11:             tfs.Authenticate();
  12:             VersionControlServer vcs = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
  13:             IEnumerable changesets = vcs.QueryHistory("$/TestProject", VersionSpec.Latest, 0, RecursionType.Full, null, null, null, int.MaxValue, false, false);
  14:             foreach (Changeset changeset in changesets) {
  15:                 if (changeset.PolicyOverride.PolicyFailures.Length > 0) {
  16:                     Console.WriteLine(
  17:                         "Changeset ID:\t{0}:{1}\r\nDate:\t\t{2}\r\nOwner:\t\t{3}\r\nComment:\t\"{4}\"\r\n",
  18:                                 changeset.ChangesetId,
  19:                                 changeset.Comment,
  20:                                 changeset.CreationDate,
  21:                                 changeset.Owner,
  22:                                 changeset.PolicyOverride.Comment);
  23:                 }
  24:             }
  25:             Console.ReadLine();
  26:         }
  27:     }
  28: }

In particolare, dopo aver eseguito la connessione al TFS, si recupera l’istanza del version control di cui viene invocato il metodo QueryHistory il cui scopo è quello di

“Retrieves an enumerable collection of changesets matching the specified items and versions.”

Fatto questo, prendiamo tutti i changeset con almeno una PolicyFailures ed il gioco è fatto:

Changeset ID:   35:Check In di Test
Date:           30/08/2008 1.48.51
Owner:          Mighell
Comment:        "Test Policy Failure comment"

Changeset ID:   34:Check In di Test
Date:           30/08/2008 01.28.27
Owner:          Mighell
Comment:        "Policy Skippata"

In conclusione, sebbene trovi più comoda la query del post precedente e sono ASSOLUTAMENTE D’ACCORDO sul fatto che NON SI DEVE SCRIVERE DIRETTAMENTE SUL DATA BASE DI TFS (ma nemmeno una letturina???? tongue-out), concordo sul fatto che se esiste un object model, è cosa buona e giusta usarlo Smile (specie per un discorso relativo alle permission).

Un ringraziamento va a Lorenzo e Janky per la segnalazione Smile.

Technorati Tags: ,
 

 

Copyright © Mighell |  Theme by Mighell.