<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>VSTS</title>
        <link>http://blogs.ugidotnet.org/diego/category/VSTS.aspx</link>
        <description>Sotto questa categoria scriverò di Visual Studio Team System 2008 e Team Foundation Server 2008</description>
        <language>it-IT</language>
        <copyright>Diego Dorola</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Policy di Checkin... verifica che siano rispettate</title>
            <link>http://blogs.ugidotnet.org/diego/archive/2009/03/30/policy-di-checkin.-verifica-che-siano-rispettate.aspx</link>
            <description>&lt;div&gt;Eccomi qui, finalmente, a scrivere il mio primo vero post. &lt;/div&gt;  &lt;br /&gt;  &lt;div&gt;Tra le funzionalità di Team Foundation Server e l'altra, io trovo molto utile la possibilità di impostare le policies di checkin, ovvero la possibilità di dare delle guide che devono essere rispettate in fase di salvataggio nel repository. &lt;/div&gt;  &lt;br /&gt;  &lt;div&gt;Chi gestisce un progetto fa affidamento su queste policy per diversi motivi. Vuoi per valutare lo stato di avanzamento, vuoi per studiare la qualità, vuoi per mille altri motivi, ma se queste policies non vengono seguite, può essere assai difficile tenere sotto controllo lo sviluppo. Purtroppo (o per fortuna, dipendentemente dalle situazioni) non c'è modo per impore queste regole. E' possibile, infatti, bypassare una policy, previo inserimento di un commento. Le policies non sono binari che si è costretti a seguire, ma linee guida che possono solo dare una direzione. &lt;/div&gt;  &lt;br /&gt;  &lt;div&gt;E' impensabile andare a guardare tutti i changeset con relativi commenti. Inoltre potrebbe essere utile avere un report schedulato in modo tale da inviare una mail al PM con i dettagli tutti il lunedì mattina. &lt;/div&gt;  &lt;br /&gt;  &lt;div&gt;Perchè, allora, non crearsi un report ad hoc? Un report che mostri i changeset (Id, data, chi ha effettuato l'operazione, commento) e sul quale si possano poi apporre dei filtri? &lt;/div&gt;  &lt;br /&gt;  &lt;div&gt;L'unico "problema" nel realizzare un report di questo tipo potrebbe essere quello di crearsi la query. Nulla davvero di più facile. I database sui quali si deve operare sono 2: TfsVersionControl e TfsWarehouse. Il primo utilizzato per prelevare le informazioni di check-in ed il secondo le informazioni sull'utente. &lt;/div&gt;  &lt;br /&gt;  &lt;div&gt;   &lt;div&gt;     &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:06a4677a-39d2-4cfb-a6ff-321365f0d68b" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#DFEBF9;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;SELECT&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    p.ChangeSetId,
    cs.CreationDate,
    cs.Comment &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; CheckInComment,
    p.Comment &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; OverrideComment,
    pr.Person,
    pr.Email
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    TfsVersionControl..tbl_PolicyOverride p    
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;INNER&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;JOIN&lt;/span&gt;&lt;span style="color: #000000;"&gt; 
    TfsVersionControl..tbl_ChangeSet cs &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ON&lt;/span&gt;&lt;span style="color: #000000;"&gt; p.ChangeSetId&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;cs.ChangeSetId 
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;INNER&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;JOIN&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    TfsVersionControl..tbl_Identity i &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ON&lt;/span&gt;&lt;span style="color: #000000;"&gt; cs.OwnerId&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;i.IdentityId
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;INNER&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;JOIN&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    TfsWarehouse..Person pr &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ON&lt;/span&gt;&lt;span style="color: #000000;"&gt; i.DisplayName&lt;/span&gt;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;(pr.Domain&lt;/span&gt;&lt;span style="color: #808080;"&gt;+&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;\&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;'&lt;/span&gt;&lt;span style="color: #808080;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;pr.Alias)
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

    &lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div&gt;Data questa query, il report viene da sè. Si possono creare filtri sull'id, sulla data, sull'utente e ovviamente sul commento di override, che interessa a noi. &lt;/div&gt;

&lt;br /&gt;

&lt;div&gt;Come primo intervento, non ho sicuramente fornito perle particolarmente preziose, tuttavia durante la valutazione di un progetto e il suo proseguimento, sapere quando e chi non ha rispettato le policy può essere molto utile. &lt;/div&gt;

&lt;br /&gt;

&lt;div&gt;Ciao a tutti &lt;/div&gt;

&lt;br /&gt;-Diego- 

&lt;img src="http://blogs.ugidotnet.org/diego/aggbug/95764.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Diego Dorola</dc:creator>
            <guid>http://blogs.ugidotnet.org/diego/archive/2009/03/30/policy-di-checkin.-verifica-che-siano-rispettate.aspx</guid>
            <pubDate>Mon, 30 Mar 2009 01:00:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/diego/archive/2009/03/30/policy-di-checkin.-verifica-che-siano-rispettate.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/diego/comments/commentRss/95764.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/diego/services/trackbacks/95764.aspx</trackback:ping>
        </item>
    </channel>
</rss>