<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>tfs &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/tfs/</link>
	<description>Feed of posts on WordPress.com tagged "tfs"</description>
	<pubDate>Sat, 26 Dec 2009 12:43:00 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Videointervju om Visual Studio 2010]]></title>
<link>http://tomasscott.wordpress.com/2009/12/16/videointervju-om-visual-studio-2010/</link>
<pubDate>Wed, 16 Dec 2009 21:13:49 +0000</pubDate>
<dc:creator>tomasscott</dc:creator>
<guid>http://tomasscott.wordpress.com/2009/12/16/videointervju-om-visual-studio-2010/</guid>
<description><![CDATA[Om ni följt bloggen så vet ni att vi kör ett projekt med Visual Studio och TFS 2010. Nu finns en vid]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Om ni följt bloggen så vet ni att vi kör ett projekt med Visual Studio och TFS 2010. Nu finns en videointervju med oss publicerad på Channel9, http://channel9.msdn.com/posts/buzzfrog/Lnsfrskringar-en-av-de-frsta-att-kra-Visual-Studio-2010-p-riktigt</p>
<p>På TechDays i Örebro 23-24 mars kommer ni ha möjlighet att höra mer om våra erfarenheter. Har just fått veta att vi blivit antagna som talare! Ytterligare en anledning att åka dit!?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[leigh lezark.]]></title>
<link>http://dieyoungstaypretty88.wordpress.com/2009/12/16/leigh-lezark/</link>
<pubDate>Tue, 15 Dec 2009 23:12:26 +0000</pubDate>
<dc:creator>die young, stay pretty.</dc:creator>
<guid>http://dieyoungstaypretty88.wordpress.com/2009/12/16/leigh-lezark/</guid>
<description><![CDATA[stockholm street style. tfs.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-stockholmstreetstyle.jpg"><img class="alignnone size-full wp-image-2042" title="leigh lezark via stockholmstreetstyle" src="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-stockholmstreetstyle.jpg" alt="" width="500" height="750" /></a></p>
<p><a href="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-stockholmstreetstyle1.jpg"><img class="alignnone size-full wp-image-2047" title="leigh lezark via stockholmstreetstyle" src="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-stockholmstreetstyle1.jpg" alt="" width="500" height="750" /></a></p>
<p><a href="http://stockholmstreetstyle.feber.se">stockholm street style.</a></p>
<p><a href="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-tfs.jpg"><img class="alignnone size-full wp-image-2043" title="leigh lezark via tfs" src="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-tfs.jpg" alt="" width="500" height="752" /></a></p>
<p><a href="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-tfs2.jpg"><img class="alignnone size-full wp-image-2044" title="leigh lezark via tfs2" src="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-tfs2.jpg" alt="" width="500" height="752" /></a></p>
<p><a href="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-tfs3.jpg"><img class="alignnone size-full wp-image-2045" title="leigh lezark via tfs3" src="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-tfs3.jpg" alt="" width="500" height="750" /></a></p>
<p><a href="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-tfs4.jpg"><img class="alignnone size-full wp-image-2046" title="Leigh Lezark via tfs4" src="http://dieyoungstaypretty88.wordpress.com/files/2009/12/leigh-lezark-via-tfs4.jpg" alt="" width="500" height="524" /></a></p>
<p><a href="http://forums.thefashionspot.com">tfs.</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[always gonna be an uphill battle.]]></title>
<link>http://dieyoungstaypretty88.wordpress.com/2009/12/14/always-gonna-be-an-uphill-battle/</link>
<pubDate>Mon, 14 Dec 2009 16:05:03 +0000</pubDate>
<dc:creator>die young, stay pretty.</dc:creator>
<guid>http://dieyoungstaypretty88.wordpress.com/2009/12/14/always-gonna-be-an-uphill-battle/</guid>
<description><![CDATA[tfs via le fashion.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://dieyoungstaypretty88.wordpress.com/files/2009/12/tfs-via-le-fashion6.jpg"><a href="http://dieyoungstaypretty88.wordpress.com/files/2009/12/tfs-via-le-fashion7.jpg"><img class="alignnone size-full wp-image-2038" title="tfs via le fashion7" src="http://dieyoungstaypretty88.wordpress.com/files/2009/12/tfs-via-le-fashion7.jpg" alt="" width="500" height="685" /></a></a></p>
<p><a href="http://dieyoungstaypretty88.wordpress.com/files/2009/12/tfs-via-le-fashion6.jpg"><img class="alignnone size-full wp-image-2037" title="tfs via le fashion6" src="http://dieyoungstaypretty88.wordpress.com/files/2009/12/tfs-via-le-fashion6.jpg" alt="" width="500" height="683" /></a></p>
<p><a href="http://www.thefashionspot.com/">tfs</a> via <a href="http://lefashionimage.blogspot.com/">le fashion.</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[(AFA 09)The Figure Show @SG]]></title>
<link>http://berribunzstudio.wordpress.com/2009/12/11/afa-09the-figure-show-sg/</link>
<pubDate>Thu, 10 Dec 2009 17:01:17 +0000</pubDate>
<dc:creator>dcal</dc:creator>
<guid>http://berribunzstudio.wordpress.com/2009/12/11/afa-09the-figure-show-sg/</guid>
<description><![CDATA[One major draw of this year&#8217;s AFA was bring the Tokyo Figure Show to Singapore.  It was also a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://smg.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/?action=view&#38;current=051.jpg" target="_blank"><img src="http://img.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/051.jpg" border="0" alt="Photobucket" /></a></p>
<p>One major draw of this year&#8217;s AFA was bring the<a href="http://www.dannychoo.com/post/en/1734/Tokyo+Figure+Show+Report.html"> Tokyo Figure Show</a> to Singapore.  It was also an opportunity for us to catch a glimpse of  <a href="http://www.dannychoo.com/post/en/25018/Danny+Choo.html">Danny Choo</a>, who brought with him a fantastic lineup from <a href="http://www.goodsmile.info/top/eng/">Good Smile Company</a> (affectionately known as GSC). For those who are still left lingering in the dark, GSC is responsible for depleting my financial resources as they keep creating and selling lovely pose-able figurines like Nendoroids (and figmas). And in some attempt at keeping track of my purchases, I have created a corner on my sidebar that lists the Nendos that will be joining my chibi army in the following months.</p>
<p>Now onto the figures&#8230;</p>
<p><a href="http://smg.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/?action=view&#38;current=045.jpg" target="_blank"><img src="http://img.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/045.jpg" border="0" alt="Photobucket" /></a></p>
<p>The lovely lady above is the Figma incarnation of  <a href="http://www.dannychoo.com/post/en/1587/Mirai+Suenaga.html">Mirai Suenaga</a>, site mascot for <a href="http://www.dannychoo.com/">dannychoo.com</a>.</p>
<p><a href="http://smg.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/?action=view&#38;current=046.jpg" target="_blank"><img src="http://img.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/046.jpg" border="0" alt="Photobucket" /></a></p>
<p>And here we have comrade<a href="http://www.kodomut.com/"> </a><a href="http://www.kodomut.com/">Kodomut</a>&#8217;s itachari. Makes me wish I there was one on a more Nendo scale for my Nendos to play with.</p>
<p><a href="http://smg.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/?action=view&#38;current=047.jpg" target="_blank"><img src="http://img.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/047.jpg" border="0" alt="Photobucket" /></a></p>
<p>There was the whole Nendoroid lineup, from the oldest to the newest release. Since I have quite a few Nendos in my collection already, I didn&#8217;t spent much time taking pictures of them. But I like this picture as it features Nendoroid Melissa Seraphy, who I think is super duper cute! She is one Nendoroid I don&#8217;t have and will kill to get. Looks like she is on my wishlist to get while I&#8217;m in Japan sometime next week. =)</p>
<p><a href="http://smg.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/?action=view&#38;current=043.jpg" target="_blank"><img src="http://img.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/043.jpg" border="0" alt="Photobucket" /></a></p>
<p>Mikuru looking good in her Meido outfit. I kind of like Mikuru, but she was a little too wimpy for my taste.</p>
<p><a href="http://smg.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/?action=view&#38;current=053.jpg" target="_blank"><img src="http://img.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/053.jpg" border="0" alt="Photobucket" /></a></p>
<p>And I have no idea who this is&#8230; But I totally adore this backview. I actually like looking at scaled figures but I will never invest monnies to get one because of the lack of display space I have. And my logic is that if I have it, I should flaunt it, and not keep it hidden in a box under my bed.</p>
<p><a href="http://smg.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/?action=view&#38;current=044.jpg" target="_blank"><img src="http://img.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/044.jpg" border="0" alt="Photobucket" /></a></p>
<p>I have no idea who this is either. But I love the angle and attention to detail.</p>
<p>And lastly, we have the famous Black Rock Shooter figurine. She is simply gorgeous. And I hope I will get a chance to steal her from *someone*, so I can get upclose and personal with this alternate version of Hatsune Miku.</p>
<p><a href="http://smg.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/?action=view&#38;current=042.jpg" target="_blank"><img src="http://img.photobucket.com/albums/v625/sans_memories/AFA%2009/TFS/042.jpg" border="0" alt="Photobucket" /></a></p>
<p>More dollies tomorrow. Stay tuned. =D</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[TFS 2010 User Security Configuration]]></title>
<link>http://nigelshaw.wordpress.com/2009/12/08/tfs-2010-user-security-configuration/</link>
<pubDate>Tue, 08 Dec 2009 18:21:17 +0000</pubDate>
<dc:creator>nigelshaw</dc:creator>
<guid>http://nigelshaw.wordpress.com/2009/12/08/tfs-2010-user-security-configuration/</guid>
<description><![CDATA[Configuring user security in Team Foundation Server can be confusing, since security has to be set a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Configuring user security in Team Foundation Server can be confusing, since security has to be set at three levels: TFS, SharePoint and Reporting Services. Because it&#8217;s complex, many people resort to using the TFS Power Tools. The problem with this method is that you don&#8217;t ever really have a clear understanding of how security should be configured.</p>
<p>I took a bit of time to boil it down to its simplest form, and the result is this short and easy to follow document: <a title="Configuring User Security in TFS 2010" href="http://nigelshaw.wordpress.com/files/2009/12/configuring-user-security-in-tfs-2010.doc" target="_blank">Configuring User Security in TFS 2010</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[VSS to TFS 2010 Migration]]></title>
<link>http://nigelshaw.wordpress.com/2009/12/07/vss-to-tfs-2010-migration/</link>
<pubDate>Mon, 07 Dec 2009 02:19:40 +0000</pubDate>
<dc:creator>nigelshaw</dc:creator>
<guid>http://nigelshaw.wordpress.com/2009/12/07/vss-to-tfs-2010-migration/</guid>
<description><![CDATA[We&#8217;ve been implementing a large TFS 2010 installation and recently started the migration from ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>We&#8217;ve been implementing a large TFS 2010 installation and recently started the migration from VSS. I&#8217;m writing to say that so far I&#8217;m impressed with the migration tool. It&#8217;s clearly documented in the MSDN library. A couple of XML configuration files drive the app. After setting up the config files you launch the migration process from the command line. I was surprised to find that you can migrate any subset of projects from VSS at a time. You don&#8217;t have to migrate the whole VSS database in one shot. I was also surprised to see that the tool mapped VSS users to TFS users and preserved version history by users. Remember to create the target users in TFS, then edit the user map file to point VSS users to TFS users.</p>
<p>It all works great so far. Now keep in mind we&#8217;ve only done a small pilot project. I&#8217;ll write back once we get onto larger ones.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Team Foundation Server]]></title>
<link>http://nigelshaw.wordpress.com/2009/12/07/team-foundation-server/</link>
<pubDate>Mon, 07 Dec 2009 01:40:42 +0000</pubDate>
<dc:creator>nigelshaw</dc:creator>
<guid>http://nigelshaw.wordpress.com/2009/12/07/team-foundation-server/</guid>
<description><![CDATA[We&#8217;ve been working in a large organization to install Team Foundation Server and to implement ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>We&#8217;ve been working in a large organization to install Team Foundation Server and to implement<br />
Agile methodologies. There are a hundred developers and approximately 90 applications developed over twenty years.</p>
<p>We went with TFS 2010 primarily for the 32 bit support and have been pleased so far with the quality. The installation is vastly improved. Gone is the fragility of previous versions. Configuration is straightforward and the config dashboard is a welcome addition. </p>
<p>A couple of caveats. You need the VS 2008 forward compatibility pack to enable connection to tfs 2010. The forward compatibility pack for VS 2005 is not yet released but will be in the new year so VS 2005 clients have to wait until then to connect. VS 2008 does not enable admin functionality so you also will need to install the TFS 2020 client to do admin functions like creating projects. </p>
<p>All in all we are impressed so far with this upgrade to the TFS line and will comment more as we start to implement functionality.  </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Planning new backup environment]]></title>
<link>http://teamfoundationserver.wordpress.com/2009/12/01/planning-new-backup-enviroment-2/</link>
<pubDate>Tue, 01 Dec 2009 14:42:31 +0000</pubDate>
<dc:creator>Tobias</dc:creator>
<guid>http://teamfoundationserver.wordpress.com/2009/12/01/planning-new-backup-enviroment-2/</guid>
<description><![CDATA[Today we have a single AT and DT. We are planning to create a new environment with database in clust]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Today we have a single AT and DT. We are planning to create a new environment with database in cluster and use NLB as switch for AT. </p>
<p>Only thing to check if this solution is future safe and this will work in Team Foundation Server 2010.</p>
<p>&#160;</p>
<p><a href="http://teamfoundationserver.files.wordpress.com/2009/12/cluster1.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Cluster TFS" border="0" alt="Cluster TFS" src="http://teamfoundationserver.files.wordpress.com/2009/12/cluster_thumb.png?w=445&#038;h=480" width="445" height="480" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Introduction to Source Control]]></title>
<link>http://jaftalks.wordpress.com/2009/11/30/introduction-to-source-control/</link>
<pubDate>Mon, 30 Nov 2009 14:36:51 +0000</pubDate>
<dc:creator>J@F</dc:creator>
<guid>http://jaftalks.wordpress.com/2009/11/30/introduction-to-source-control/</guid>
<description><![CDATA[What is source control? Sometimes we call it &#8220;version control&#8221;.  Sometimes we call it ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>What is source control?</strong></p>
<p>Sometimes we call it &#8220;version control&#8221;.  Sometimes we call it &#8220;SCM&#8221;, which stands for either &#8220;software configuration management&#8221; or &#8220;source code management&#8221;.  Sometimes we call it &#8220;source control&#8221;. </p>
<p>By any of these names, source control is an important practice for any software development team.  The most basic element in software development is our source code.  A source control tool offers a system for managing this source code.</p>
<p>There are many source control tools, and they are all different.  However, regardless of which tool you use, it is likely that your source control tool provides some or all of the following basic features:</p>
<ul>
<li>It provides a place to store your source code.</li>
<li>It provides a historical record of what you have done over time.</li>
<li>It can provide a way for developers to work on separate tasks in parallel, merging their efforts later.</li>
<li>It can provide a way for developers to work together without getting in each others&#8217; way.</li>
</ul>
<p><strong>Repository and working folder</strong></p>
<p>An SCM tool provides a place to store your source code.  We call this place a <em>repository</em>.  The repository exists on a server machine and is shared by everyone on your team.</p>
<p>Each individual developer does her work in a <em>working folder</em>, which is located on a desktop machine and accessed using a client.</p>
<p>Each of these things is basically a hierarchy of folders.  A specific file in the repository is described by its path, just like we describe a specific file on the file system of your local machine. </p>
<p>For example, the path for a file might look like this:</p>
<p>$/trunk/src/myLibrary/hello.cs</p>
<p>The workflow of a developer is an infinite loop which looks something like this:</p>
<ul>
<li>Copy the contents of the repository into a working folder.</li>
<li>Make changes to the code in the working folder.</li>
<li>Update the repository to incorporate those changes.</li>
<li>Repeat.</li>
</ul>
<p>The repository is the official place where all completed work is stored.</p>
<p>Let&#8217;s imagine for a moment what life would be like without this distinction between working folder and repository.  In a single-person team, the situation could be described as tolerable.  However, for any plurality of developers, things can get very messy.</p>
<p>I&#8217;ve seen people try it (Rawad &#38; Adel).  They store their code on a file server.  Everyone uses Windows file sharing and edits the source files in place.  When somebody wants to edit <strong>main.cpp</strong>, they shout across the hall and ask if anybody else is using that file. </p>
<p>Because of this separation between working folder and repository, the most frequently used features of an SCM tool are the ones which help us move things back and forth between them.  Let&#8217;s define some terms:</p>
<ul>
<li><strong>Add</strong>:  A repository starts out completely empty, so we need to &#8220;Add&#8221; things to it.  Using the &#8220;Add Files&#8221; command in Vault you can specify files or folders on your desktop machine which will be added to the repository.</li>
<li><strong>Get</strong>:  When we copy things from the repository to the working folder, we call that operation &#8220;Get&#8221;.  Note that this operation is usually used when retrieving files that we do not intend to edit.  The files in the working folder will be read-only.</li>
<li><strong>Checkout</strong>:  When we want to retrieve files for the purpose of modifying them, we call that operation &#8220;Checkout&#8221;.  Those files will be marked writable in our working folder.  The SCM server will keep a record of our intent.</li>
<li><strong>Checkin</strong>:  When we send changes back to the repository, we call that operation &#8220;Checkin&#8221;.  Our working files will be marked back to read-only and the SCM server will update the repository to contain new versions of the changed files.</li>
</ul>
<p>The repository is more than just an archive of the current version of your code.  Actually, it is an archive of every version of the code.  The repository contains <em>history</em>.  It contains every version of every file that has ever been checked in to the repository. </p>
<p>The ability to travel back in time can be extremely useful for a software project.  Suppose we need the ability to retrieve a copy of our source code exactly as it looked on April 28th, 2002.  An SCM tool makes this kind of thing easy to do.</p>
<p>An even more common case is the situation where a piece of code looks goofy and nobody can figure out why.  It&#8217;s handy to be able to look back at the history and understand when and why a certain change happened.</p>
<p>Over time, the complete history of a repository can become large and overwhelming, so SCM tools provide ways to cope.  For example, Vault provides a History Explorer which allows the history entries to be queried and searched and sorted.</p>
<p><strong>Editing a single file</strong></p>
<p>Consider the simple situation where a developer needs to make a change to one source file. </p>
<p>Two methods:</p>
<ul>
<li><strong>checkout-edit-checkin</strong></li>
</ul>
<ol>
<li>Checkout the file</li>
<li>Edit the working file as needed</li>
<li>Checkin the file</li>
</ol>
<p>Followers of the &#8220;checkout-edit-checkin&#8221; doctrine are effectively submitting to live according to the following rules:</p>
<ul>
<li>Files in the working folder are read-only unless they are checked out.</li>
<li>Developers must always checkout a file before editing it.  Therefore, the entire team always knows who is editing which files.</li>
<li>Checkouts are made with exclusive locks, so only one developer can checkout a file at one time.</li>
</ul>
<ul>
<li><strong>Edit-merge-commit:</strong> the following steps to modify a single file:</li>
</ul>
<ol>
<li>Edit the working file as needed</li>
<li>Merge any recent changes from the server into the working file</li>
<li>Commit the file to the repository</li>
</ol>
<p>The edit-merge-commit rules:</p>
<ul>
<li>Files in the working folder are always writable.</li>
<li>Nobody uses checkouts at all, so nobody knows who is editing which files.</li>
<li>When a developer commits his changes, he is responsible for ensuring that his changes were made against the latest version in the repository.</li>
</ul>
<p>There are several reasons why we may need to merge two modified versions of a file:</p>
<ul>
<li>When using &#8220;edit-merge-commit&#8221; (sometimes called &#8220;optimistic locking&#8221;), it is possible for two developers to edit the same file at the same time.</li>
<li>Even if we use &#8220;checkout-edit-checkin&#8221;, we may allow multiple checkouts, resulting once again in the possibility of two developers editing the same file.</li>
<li>When merging between branches, we may have a situation where the file has been modified in both branches.</li>
</ul>
<p><strong>An example</strong></p>
<p>Let&#8217;s call our two developers Jane and Joe.  Both of them have retrieved version 4 of the same file and both of them are working on making changes to it.</p>
<p>One of these developers will checkin before the other one.  Let&#8217;s assume it is Jane who gets there first.  When Jane tries to checkin her changes, nothing unusual will happen.  The current version of the file is 4, and that was the version she had when she started making her changes.  In other words, version 4 was her baseline for these changes.  Since her baseline matches the current version, there is no merge necessary.  Her changes are checked in, and a version of the file is created in the repository.  After her checkin, the current version of the file is now 5.</p>
<p>The responsibility for merging is going to fall upon Joe.  When he tries to checkin his changes, the SCM tool will protest.  His baseline version is 4, but the current version in the repository is now 5.  If Joe is allowed to checkin his version of the file, the changes made by Jane in version 5 will be lost.  Therefore, Joe will not be allowed to checkin this file until he convinces the SCM tool that he has merged Jane&#8217;s version 5 changes into his working copy of the file.</p>
<p>In order to resolve this situation, Joe effectively needs to do a three-way comparison between the following three versions of the file:</p>
<ul>
<li>Version 4 (the baseline from which he and Jane both started)</li>
<li>Version 5 (Jane&#8217;s version)</li>
<li>Joe&#8217;s working file (containing his own changes)</li>
</ul>
<p>Version 4 is the common ancestor for both Joe&#8217;s version and Jane&#8217;s version of the file.  By running a diff between version 4 and version 5, Joe can see exactly what changes Jane made.  He can use this information to apply those changes to his own version of the file.  Once he has done so, he can credibly claim that his version is a merge of his changes and Jane&#8217;s.</p>
<p>However, most of the time it will be necessary for the merge to actually happen.  In these cases, Joe has the following options:</p>
<ul>
<li>Attempt to automerge</li>
<li>Use a visual merge tool</li>
<li>Redo one set of changes by hand</li>
</ul>
<p><strong>Attempt to automerge</strong></p>
<p>A surprising number of cases can be easily handled automatically.  Most source control tools include the ability to attempt an automatic merge.  The algorithm uses all three of the involved versions of the file and attempts to safely produce a merged version.</p>
<p>The reason that automerge is so safe in practice is that the algorithm is extremely conservative.  Automerge will refuse to produce a merged version if Joe&#8217;s changes and Jane&#8217;s changes appear to be in conflict.  In the most obvious case, if Joe and Jane both modified the same line, automerge will detect this &#8220;conflict&#8221; and refuse to proceed.  In other cases, automerge may fail with conflicts if two changes are too close to each other.</p>
<p><strong>Use a visual merge tool</strong></p>
<p>In cases where automerge cannot automatically resolve conflicts, we can use a visual merge tool to make the job easier.  These tools provide a visual display which shows all three files and highlights exactly what has changed.  This makes it much easier for the developer to perform the merge, since she can zero in on the conflicts very quickly.</p>
<p><strong>Redo one set of changes by hand</strong></p>
<p>Some situations are so complicated that a visual merge tool just isn&#8217;t very helpful.  In the worst case scenario, Joe might have to manually redo one set of changes.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Gated Checkins Revisited]]></title>
<link>http://drainbrain.wordpress.com/2009/11/27/gated-checkins-revisited/</link>
<pubDate>Fri, 27 Nov 2009 16:31:42 +0000</pubDate>
<dc:creator>rcomian</dc:creator>
<guid>http://drainbrain.wordpress.com/2009/11/27/gated-checkins-revisited/</guid>
<description><![CDATA[So I&#8217;ve had a play with gated checkins in 2010 and I have to say I&#8217;m reasonably impresse]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>So I&#8217;ve had a play with gated checkins in 2010 and I have to say I&#8217;m reasonably impressed. Not massively impressed, but reasonably.</p>
<p>I can finally see how the implementation may actually help. It pushes a lot of the problems back to the developer in a way that&#8217;s offline, so that the problems aren&#8217;t sorted out by mashing trunk, you just have to mash your workspace instead. And mash it you may.</p>
<p>First and foremost, the thing that wasn&#8217;t clear to me, is that the checkin process is properly separated into 2 stages. 2 things normally happen on checkin:</p>
<ol>
<li> Your changes are collated and sent to the server.</li>
<li>Your workspace is updated to mark your files as no-longer changed by updating the &#8216;base&#8217; revisions of the files in your workspace.</li>
</ol>
<p>This second part is basically like a get operation on your changes and is what is delayed when gated checkins are used. With gated checkins, the process is much more complex:</p>
<ol>
<li>Your changes are collated and shelved.</li>
<li>A build job is queued against the shelveset.</li>
<li>The shelveset is merged onto trunk.</li>
<li>The merged result is built.</li>
<li>The shelveset is merged with trunk again (it could have moved on whilst the build was going on) and committed.</li>
<li>An agent on the client machine notices the commit and runs around your working copy marking files as being at the new revision. No changes appear to be made to your code during this step.</li>
</ol>
<p>It was step 6 that was the missing part of the story for me. The obvious way to do it is just to hold open the commit, but 2010 makes it a separate job with its own monitoring process. After commit, whilst the build is going on, by default your workspace still shows all your files as having been changed. You can continue to work and it looks like your coding on top of the changes you just sent up. When the commit completes, you get the option to reconcile and all the relevant changes disappear and diffs suddenly show the changes since the commit, instead of the changes including the commit.</p>
<p>Obviously, since there&#8217;s more steps, there&#8217;s more opportunity for failure. Failure at any point leaves the shelveset in tact and you&#8217;re notified via the daemon that watches the build on your workstation. Failures include anything other than a truly trivial merge in steps 3 or 5, and of course, any failures you define in the build.</p>
<p>Things can get a little messy on failure. Your first option is to simply ignore it. If you&#8217;ve carried on working, your workspace still shows the pending changes from the commit plus the changes you&#8217;ve made since so you can just push up a larger commit next time. Your other option is to try to fix the actual problem, to do this it feels like you&#8217;d typically shelve your current changes and revert them, then unshelve the failed commit. Fix it as you normally would and commit again. At which point you can switch back to the shelveset you originally made and carry on where you left of. Do this, however, and reconciliation will fail and you&#8217;ll be left to sort out the mess manually.</p>
<p>The second option gets quite messy, since the code you committed has diverged from the code you&#8217;re working on. It can&#8217;t be resolved by the reconciliation process, and you need to sort it out yourself with a get latest. This leaves you to resolve the merges in the normal way. Now, your merging fixed code with unfixed code, so it&#8217;s up to you to remember where the fixes where and ensure that they get merged in properly. Good luck.</p>
<p>By default the commits are queued sequentially, but I can see it would work just as well by building everything in parallel as well, since any merge conflict at any point will cause a commit failure (and the related heart-strain). I still maintain that this will be a major issue if anything makes the queue length build, but I&#8217;m generally more optimistic that it could work. I did get into a bit of a mess trying to fix shelveset in some scenarios, especially when the reconciliation failed.</p>
<p>Essentially, you really need to excerice the 3rd option and stop work and wait for the build to complete before you carry on working. In reality, that&#8217;s what tends to happen with CI anyway. Most CI&#8217;s work in what TFS calls Rolling Builds &#8211; which means that there&#8217;s no queue, so you have to wait a maximum of 2x the build time to see if your commit is good, unlike gated checkin. Also remember that even though you&#8217;ve resolved conflicts before commit, if something was queued up before you, that may still conflict and your otherwise perfectly good change will get rejected anyway.</p>
<p>So keep your builds quick and your queues short and gated checkin works quite nicely.</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Gated Check In Build Fails - File Locked]]></title>
<link>http://seesharper.wordpress.com/2009/11/26/gated-check-in-build-fails-file-locked/</link>
<pubDate>Thu, 26 Nov 2009 08:51:33 +0000</pubDate>
<dc:creator>Steve Godbold</dc:creator>
<guid>http://seesharper.wordpress.com/2009/11/26/gated-check-in-build-fails-file-locked/</guid>
<description><![CDATA[&#8211; Update: The process for initiating a gated check in containing a locking check out has been ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span style="color:#ff0000;"><strong>&#8211;</strong></span></p>
<p><span style="color:#ff0000;"><strong>Update: </strong></span></p>
<p><span style="color:#ff0000;">The process for initiating a gated check in containing a locking check out has been improved for RTM!</span></p>
<p><span style="color:#ff0000;"> The default is now to display the options expander, with the &#8216;Preserve my Pending Changes&#8217; check box unchecked and greyed. A tooltip is supplied on hover for the check box which states &#8220;</span><span style="color:#ff0000;">The pending changes being checked in contain one or more locks. The build service cannot unshelve or check in your changes if your local changes are preserved.”</span><span style="color:#ff0000;">.</span></p>
<p><span style="color:#ff0000;">The following therefore only applies to Beta 2 of TFS 2010.</span></p>
<p><span style="color:#ff0000;"> &#8212;-</span></p>
<p>Working with gated check-ins can save you time by verifying your changes before committing them to the repository. This is great in terms of keeping your code base healthy and enabling team development. Recently I&#8217;ve seen teams start to use this feature and struggle with a consistently breaking gated check-in build. What I noticed was common across these builds was the cause &#8211; a locked file.</p>
<div id="attachment_422" class="wp-caption aligncenter" style="width: 520px"><a href="http://seesharper.wordpress.com/files/2009/11/gci-locked-file-failure.png"><img class="size-full wp-image-422" title="GCI - Locked File Failure" src="http://seesharper.wordpress.com/files/2009/11/gci-locked-file-failure.png" alt="Check In Build - Locked File Failure" width="510" height="102" /></a><p class="wp-caption-text">Gated Check In Build - Locked File Failure</p></div>
<p>This occurs when your check-in involves a binary file, which TFS automatically forces into a locking check out. This means that when your gated build goes to &#8216;get&#8217; the file into it&#8217;s build workspace it clashes with the lock you have locally.</p>
<p>The fix here is to un-check the &#8220;Preserve my pending changes locally&#8221; option on the gated build initiation screen. This will undo your local changes and allow the build to get the binary into it&#8217;s workspace. The thing to remember here is if the build breaks, you&#8217;ll need to know the name of the shelve set to get it back down locally and fix the issue. Luckily it&#8217;s right there on the build initiation screen for you, and you can either screen shot or copy it out for later.</p>
<p><a href="http://seesharper.wordpress.com/files/2009/11/gated-check-in-preserve-pending.png"><img class="aligncenter size-full wp-image-420" title="Gated Check In - Initiation Screen" src="http://seesharper.wordpress.com/files/2009/11/gated-check-in-preserve-pending.png" alt="Gated Check In Build" width="510" height="307" /></a></p>
<p>Your other option is to use the dialog that pops up with the build results to un shelve the changes&#8230;</p>
<div id="attachment_427" class="wp-caption aligncenter" style="width: 454px"><a href="http://seesharper.wordpress.com/files/2009/11/gci-results-dialog.png"><img class="size-full wp-image-427" title="GCI - Results Dialog" src="http://seesharper.wordpress.com/files/2009/11/gci-results-dialog.png" alt="Gated Check In Results Dialog" width="444" height="215" /></a><p class="wp-caption-text">Results Dialog</p></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Visual Studio 2010 Team System session]]></title>
<link>http://octavievanhaaften.wordpress.com/2009/11/25/visual-studio-2010-team-system-session/</link>
<pubDate>Wed, 25 Nov 2009 22:01:51 +0000</pubDate>
<dc:creator>octavievanhaaften</dc:creator>
<guid>http://octavievanhaaften.wordpress.com/2009/11/25/visual-studio-2010-team-system-session/</guid>
<description><![CDATA[Last night I hosted a session about the Visual Studio 2010. Speaker was Gerard van der Pol from Micr]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Last night I hosted a session about the Visual Studio 2010. Speaker was Gerard van der Pol from Microsoft NL. This time it wasn’t about what’s new with the (obviously) improved IDE and .NET Framework 4, but it was all about the features regarding Team Foundation Server (TFS). Of course, there are lot of new features to talk about and so little time. I’ll describe some features Gerard was demonstrating. </p>
<p>First, let me say that the title of this post is a bit wrong. The brand Team System will disappear, so it is only Visual Studio 2010.</p>
<p>Also, the editions will change a bit:</p>
<p><a href="http://octavievanhaaften.files.wordpress.com/2009/11/slide5.jpg"><img style="display:inline;border-width:0;" title="Slide5" border="0" alt="Slide5" src="http://octavievanhaaften.files.wordpress.com/2009/11/slide5_thumb.jpg?w=504&#038;h=316" width="504" height="316" /></a> </p>
<p>Regarding to Team System (or should I say ALM) there are 2 new products: Visual Studio Test Elements and Visual Studio Team Lab Management.</p>
<p><a href="http://octavievanhaaften.files.wordpress.com/2009/11/slide6.jpg"><img style="display:inline;border-width:0;" title="Slide6" border="0" alt="Slide6" src="http://octavievanhaaften.files.wordpress.com/2009/11/slide6_thumb.jpg?w=504&#038;h=316" width="504" height="316" /></a> </p>
<p>With <strong>Lab Management</strong> it is possible to create and configure your environments to help testers more easily test a variety of configurations in a virtual lab environment, and help developers more easily repro bugs by delivering snapshots of those virtualized environments after bugs are discovered. For more information, watch <a href="http://channel9.msdn.com/posts/VisualStudio/Lab-Management-coming-to-Visual-Studio-Team-System-2010/" target="_blank">this</a> Channel9 video.</p>
<p>With <strong>Test Record &#38; Playback</strong> you can actually record and playback your test plan and steps. The video’s will be accessible for the developer from the work item. For more information, watch <a href="http://channel9.msdn.com/posts/Charles_Sterling/How-to-create-record-and-playback-Test-Cases-in-Visual-Studio-Beta2/" target="_blank">this</a> Channel9 video.</p>
<p>Do you recognize this:</p>
<ul>
<li>You’ve received reports of a crash from a tester, but on your local box you can’t get the bug to reproduce.</li>
<li>You’ve received a crash dump from the tester along with the bug. But the call stack that actually caused the crash was just a cascading effect and you can’t trace the bug back to the root issue.</li>
<li>The bug that you are currently working at resolving has an extremely long set of reproduction steps and you just accidentally stepped over the function that is returning bad data.</li>
</ul>
<p><strong>IntelliTrace</strong>, formerly known as Historical Debugging, can help you out now! IntelliTrace is similar to that of a black box in a plane. It’s keeping track of important points in your programs execution and allow you to play back what happened at those points at a later time. For more information, click <a href="http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/10/19/vs-2010-beta-2-intellitrace-in-depth-first-look.aspx" target="_blank">here</a>.</p>
<p>With the new <strong>Profiler</strong> you get a really great look at how your code is performing. It comes with couple of new features for developers:</p>
<ul>
<li><strong>CPU Sampling</strong>      <br />Measures CPU-bound applications with low overhead. </li>
<li><strong>Instrumentation</strong>      <br />Measures function call counts and timing. </li>
<li><strong>.NET Memory Allocation (Sampling)        <br /></strong>Track managed memory allocation. </li>
<li><strong>Concurrency</strong>      <br />Detect threads memory for other threads.
<ul>
<li>Collect resource contention data </li>
<li>Collect thread execution data </li>
</ul>
</li>
</ul>
<p><a href="http://octavievanhaaften.files.wordpress.com/2009/11/profileroverview.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="ProfilerOverview" border="0" alt="ProfilerOverview" src="http://octavievanhaaften.files.wordpress.com/2009/11/profileroverview_thumb.jpg?w=504&#038;h=320" width="504" height="320" /></a></p>
<p>Profiler includes a new page called the Function Details page, which will depict the caller/callee information in a graphical way along with the performance metric. You can also view your code which includes the line-level performance measurements. </p>
<p><a href="http://octavievanhaaften.files.wordpress.com/2009/11/profilerfunctionpage.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="ProfilerFunctionPage" border="0" alt="ProfilerFunctionPage" src="http://octavievanhaaften.files.wordpress.com/2009/11/profilerfunctionpage_thumb.jpg?w=504&#038;h=316" width="504" height="316" /></a> </p>
<p>To end this post, I want to tell you about <strong>Gated Check-in</strong>. We all have colleagues who are checking in their code and you end up with a non building solution. With Gated Check-in you can prevent users to check-in their code unless it all builds! And it is also possible to run your tests too, before allowing to check-in.</p>
<p>For more information, click <a href="http://msdn.microsoft.com/en-us/library/dd787631(VS.100).aspx" target="_blank">here</a>.</p>
<p>I was truly amazed with all the new features of Visual Studio 2010 regarding ALM and had a great night. Go explore for yourself!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Connecting TFS 2010 projects to SharePoint sites - Weblog Ton Stegeman [MVP]]]></title>
<link>http://murratore.wordpress.com/2009/11/25/connecting-tfs-2010-projects-to-sharepoint-sites-weblog-ton-stegeman-mvp/</link>
<pubDate>Wed, 25 Nov 2009 12:42:46 +0000</pubDate>
<dc:creator>murratore</dc:creator>
<guid>http://murratore.wordpress.com/2009/11/25/connecting-tfs-2010-projects-to-sharepoint-sites-weblog-ton-stegeman-mvp/</guid>
<description><![CDATA[The new Team Foundation Server (currently in beta 2) has the option to connect TFS project to an exi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The new Team Foundation Server (currently in beta 2) has the option to connect TFS project to an existing SharePoint site. This also allows you to specify on which SharePoint server to create new project sites. For us this is important, because a lot of our projects start way before the TFS project gets created. Then we end up moving all files to the TFS project site, or we have two project sites for the same project. When we go live with TFS2010, we no longer have to transfer files. And we can host the TFS project sites on our company SharePoint implementation, which means 1 WSS server less to maintain. With one of my colleagues we managed to get this working in our test environment. This post shows you how we have set it up.</p>
<p>via <a href="http://www.tonstegeman.com/Blog/Lists/Posts/Post.aspx?List=70640fe5%2D28d9%2D464f%2Db1c9%2D91e07c8f7e47&#38;ID=121">Connecting TFS 2010 projects to SharePoint sites &#8211; Weblog Ton Stegeman [MVP]</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What's new in Team Build 2010?]]></title>
<link>http://leanbuilds.wordpress.com/2009/11/24/whats-new-in-team-build-2010/</link>
<pubDate>Wed, 25 Nov 2009 06:17:59 +0000</pubDate>
<dc:creator>Jason Lenny</dc:creator>
<guid>http://leanbuilds.wordpress.com/2009/11/24/whats-new-in-team-build-2010/</guid>
<description><![CDATA[Jakob Ehn over at GeeksWithBlogs has written up a great list at http://geekswithblogs.net/jakob/arch]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://geekswithblogs.net/jakob/Default.aspx">Jakob Ehn</a> over at GeeksWithBlogs has written up a great list at <a href="http://geekswithblogs.net/jakob/archive/2009/05/23/tfs-team-build-2010-whatrsquos-new.aspx">http://geekswithblogs.net/jakob/archive/2009/05/23/tfs-team-build-2010-whatrsquos-new.aspx</a>.   I&#8217;m particularly excited about the possibility of using templates for build definitions (I remember many an hour spent duplicating an existing build definition &#8220;the long way&#8221; with TFS 2008.)  It&#8217;s very cool that Microsoft decided to add gated check-ins as a core feature; we were able to get it working in the previous version, but it required a lot of creative engineering to get it working correctly.</p>
<p>I&#8217;ve just finished getting my local VM TFS sandbox up and running, and I have to say I&#8217;m very impressed with the new installation and configuration process.  There still seem to be the usual arcane permissions magic that needs to be done in order to get everything playing together nicely, but nothing that you can&#8217;t figure out with a bit of trial and error and/or making service accounts domain administrators. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Building VS Database Projects on x64 - Cannot find sqlceme35.dll]]></title>
<link>http://seesharper.wordpress.com/2009/11/25/building-vs-database-projects-on-x64-cannot-find-sqlceme35-dll/</link>
<pubDate>Tue, 24 Nov 2009 21:42:09 +0000</pubDate>
<dc:creator>Steve Godbold</dc:creator>
<guid>http://seesharper.wordpress.com/2009/11/25/building-vs-database-projects-on-x64-cannot-find-sqlceme35-dll/</guid>
<description><![CDATA[Recently I&#8217;ve been helping a fellow Readifarian get started on a brand new project using TFS a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Recently I&#8217;ve been helping a fellow <a href="http://petesullivan.spaces.live.com/blog/">Readifarian </a>get started on a brand new project using TFS and VS 2010. As always, we&#8217;ve seen a few teething issues along the way. Yesterday he was attempting to get his database project to build on his shiny new Windows 2008 R2 x64 build server and was having some issues with the SqlBuildTask failing. The stack trace was pointing to an unresolvable reference to the SQL CE assemblies.</p>
<p style="text-align:center;">
<div id="attachment_411" class="wp-caption aligncenter" style="width: 727px"><a href="http://seesharper.wordpress.com/files/2009/11/database-project-build-error.png"><img class="size-large wp-image-411 " title="Database Project Build Error" src="http://seesharper.wordpress.com/files/2009/11/database-project-build-error.png?w=1024" alt="Database Project Build Error" width="717" height="258" /></a><p class="wp-caption-text">Error Stack Trace</p></div>
<p>After doing some digging around the MSDN forums and broader web I found some older posts on x64 issues with SQL CE. While this wasn&#8217;t my issue, it led me down the right path. What&#8217;s happening here is that there is a minor issue with locating the x64 version of the mentioned assembly cause by a bug in the setup of Team Build. The workaround here is to set the MSBuild framework to x86, which in turn makes the database project locate and use the x86 version of the SQL CE assembly.</p>
<p><strong>Important Note: This work around will only be needed in the Beta 2 timeframe for 2010, as the underlying cause of this issue has been fixed for RTM.</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Team Foundation Server 2010 First Looks]]></title>
<link>http://leanbuilds.wordpress.com/2009/11/23/team-foundation-server-2010-first-looks/</link>
<pubDate>Mon, 23 Nov 2009 21:23:15 +0000</pubDate>
<dc:creator>Jason Lenny</dc:creator>
<guid>http://leanbuilds.wordpress.com/2009/11/23/team-foundation-server-2010-first-looks/</guid>
<description><![CDATA[Craig Tadlock (over at the Tadlock Enterprises Blog) made a couple good posts recently about Team Fo]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Craig Tadlock (over at the <a href="http://www.tadlockenterprises.com/blog/">Tadlock Enterprises Blog</a>) made a couple good posts recently about Team Foundation Server and Team Build 2010:</p>
<p><a href="http://www.tadlockenterprises.com/2009/11/tfs-work-item-task-classifications/">Work Item Classifications</a><br />
<a href="http://www.tadlockenterprises.com/2009/11/tfs-2010-work-item-relationships/">Work Item Relationships</a></p>
<p>He also came across this great blog that is focused on doing automated testing:</p>
<p><a href="http://blogs.msdn.com/vstsqualitytools/">http://blogs.msdn.com/vstsqualitytools</a></p>
<p>as well as this link discussing custom workflow items:</p>
<p><a href="http://blogs.msdn.com/jimlamb/archive/2009/11/18/how-to-create-a-custom-workflow-activity-for-tfs-build-2010.aspx">http://blogs.msdn.com/jimlamb/archive/2009/11/18/how-to-create-a-custom-workflow-activity-for-tfs-build-2010.aspx</a></p>
<p>I&#8217;m setting up a local TFS test environment for myself now and hopefully soon should have some interesting information on setting up Lean build systems using this great platform.  I was lucky enough to work at a company that used the previous incarnation of Team Foundation Server and I have to admit I&#8217;m pretty excited to see what goodies Microsoft is giving us on this go-around.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Gated Checkins]]></title>
<link>http://drainbrain.wordpress.com/2009/11/23/gated-checkins/</link>
<pubDate>Mon, 23 Nov 2009 14:21:00 +0000</pubDate>
<dc:creator>rcomian</dc:creator>
<guid>http://drainbrain.wordpress.com/2009/11/23/gated-checkins/</guid>
<description><![CDATA[Back when I was working with subversion, I was at one point writing a hook script to check that a gi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Back when I was working with subversion, I was at one point writing a hook script to check that a given commit was good. You know the kind of stuff: Have you added a comment, are you trying to change a tag, are you trying to hack the server, have you brushed your teeth, and so on.</p>
<p>It’s a fairly obvious thought when you’re in that environment to think &#8230; is this going to build? After all, here’s the perfect opportunity find out, and if it doesn’t we can just reject the commit and it’ll be as if it never happened – no-one else gets affected, nothing bad polluting the trunk, better chance of having a 1:1 workitem/changeset ratio, it’s all good.</p>
<p>It turns out that this idea is called gated checkin, and it’s available as a checkbox in TFS 2010. But despite my glowing report, I’m yet to be convinced of gated checkin as something that isn&#8217;t just a nuisance, compared with CI. I rejected it on the subversion side of things because our builds always took forever, and whilst a build was being checked, no-one else could commit. Not only that, but because I used a single repository for everything, it meant that no-one else could commit even if they were on a different project entirely. Thinking about this differently, this could be the best argument I’ve found for using individual repositories per project with subversion.</p>
<p>It’s much the same argument with TFS – the checkin is held open until the build and any other checks you use have completed, preventing anyone else from doing anything commit related. I mean they can’t even resolve any commit conflicts reliably, because they may or may not need to incorporate the changes that are being tested. This means your builds must be quick. This means they must be small. This means the projects must be small. Allegedly gated checkin becomes a requirement when you have &#62;~60 people on a branch, as just by the laws of statistics, the branch is more often broken than healthy. Having 60 people on a single branch doesn’t sound small to me. If you’ve got 60 developers checking in every 2 hours, that’s a commit every 2 minutes. That’s your timeslot before your start impinging on developer productivity.</p>
<p>I’m not sure what the solution to this is. Apparently gated checkin is the solution to world hunger. Personally I prefer the idea of having less people on a single branch and merging more. Split the project into components and release them separately. Anything really. But I guess I’m going to have to try these before I can make a decision for sure. After all, they’re easy to setup and take out. If the builds are fast enough, they’ll certainly make the branch history cleaner, and surely that’s a good thing.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Change tracking in TFS]]></title>
<link>http://drainbrain.wordpress.com/2009/11/23/change-tracking-in-tfs/</link>
<pubDate>Mon, 23 Nov 2009 14:16:20 +0000</pubDate>
<dc:creator>rcomian</dc:creator>
<guid>http://drainbrain.wordpress.com/2009/11/23/change-tracking-in-tfs/</guid>
<description><![CDATA[One of my main bugbears with source control is knowing where my changes are. I don’t mean just havin]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>One of my main bugbears with source control is knowing where my changes are. I don’t mean just having a good idea, I mean actual empirical evidence that I can look at and easily convince someone else that changes have been moved from the project branch to trunk, and from trunk to release.</p>
<p>Now this is always possible by looking at the code, but that just doesn’t scale – it can easily take days to work out what’s in a particular release, and by the time that&#8217;s finished the world will have changed anyway. We need something high level, something that says this branch contains these changes from these locations. TFS goes some way to addressing this with a nifty visualisation in the new 2010 suite. Given a changeset, you can follow the merge history of that changeset across the branches of your project.</p>
<p><a href="http://drainbrain.wordpress.com/files/2009/11/tracking-changesets.png"><img class="alignnone size-medium wp-image-13" title="Tracking changesets" src="http://drainbrain.wordpress.com/files/2009/11/tracking-changesets.png?w=300" alt="" width="300" height="251" /></a></p>
<p>This is excellent if you’re looking at a particular change and want to know where it is. You can easily see that it has been flowed in the right direction, and can see how much of a mess you’re getting yourself into. This visualisation also handles partial merges by showing them in yellow for the time that they&#8217;re partial (hopefull they’ll get fully merged after a while, letting them go green).</p>
<p>If you want to know where a particular change has made it to, this view is perfect. In my experience, however, we rarely want to know where a single changeset has gone, we’re much more interested in where a workitem has gone. Although we’d all love to think that there’s a 1:1 correspondence between workitems and changesets, it just aint gonna be so, regardless of how you work. MS are working on this, of course, although I’m not holding my breath for the initial 2010 release.</p>
<p>The other problem is again one of scale. Whilst this view is very useful, one thing that we need for a release is a report on all the items which have been merged into this release from trunk (and conversely, what’s missing). Ideally this should be at a workitem level as well, but a changeset level report is a good start. Subversion has this with its mergeinfo command. Tortoisesvn shows each revision and greys out the ones that have already been merged. Git has an incredibly detailed view of all the changes that were made on parallel branches. I’m not sure if that’s any use in telling you what’s missing, but it’s wonderful for knowing what’s in. These all work on the changeset level, however.<br />
I haven’t found anything equivalent in TFS yet. The information is available in TFS, so it’s likely trivial to build it manually.</p>
<p>All of this tracking is of no use, however, if your changesets mean nothing more than it was Friday night and were preparing for the weekend. Also, a commit comment of “some changes” isn’t going to be useful for working out which changesets you’re looking for. If you’ve never felt the need to be disciplined in making a changeset be a single unit of functionality before, perhaps this can inspire you as to why it might be a good idea.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Branching in TFS]]></title>
<link>http://drainbrain.wordpress.com/2009/11/23/branching-in-tfs/</link>
<pubDate>Mon, 23 Nov 2009 13:51:21 +0000</pubDate>
<dc:creator>rcomian</dc:creator>
<guid>http://drainbrain.wordpress.com/2009/11/23/branching-in-tfs/</guid>
<description><![CDATA[Some of you may know that I’m a strong advocate for using some of the more flexible branching strate]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Some of you may know that I’m a strong advocate for using some of the more flexible branching strategies available to us developers, given the advances in source control over the last 20 years. TFS 2010 is adding in some extra branching support that should make this more compelling.</p>
<p>In short, TFS 2010 knows about branches explicitly. That is, you tell it “this folder is a branch” and it can track things around in a nice visual form. You start out with marking your trunk/mainline branch, then branching from that. Visual studio tracks what gets branched where and can show you the relationships between branches in a nice, simple diagram.</p>
<p><a href="http://drainbrain.wordpress.com/files/2009/11/branchstructure-in-2010.png"><img class="alignnone size-medium wp-image-5" title="BranchStructure in 2010" src="http://drainbrain.wordpress.com/files/2009/11/branchstructure-in-2010.png?w=300" alt="" width="300" height="225" /></a></p>
<p>This shows the logical structure of the branches. Here we can see that 3 branches came from Dev and an additional branch was made from “Brian”. The logical structure shows where branches came from and, conversely where changes need to be merged back to. The actual meaning is branch dependent of course &#8211; release branches would have changes merged into them from trunk, development branches would have their changes merged into trunk.</p>
<p>The physical structure is where the branches are located in Team Explorer and will be completely different to the logical structure.  The recommendation is that folders are made to hold branches of a common type, so that the physical structure tells you the reason for the branches existence, such as private branches, feature work, stable release branches etc. Each branch can have a description, which is useful for finding out detail about an individual branch, but grouping them in folders makes sense.</p>
<p><a href="http://drainbrain.wordpress.com/files/2009/11/physical-branch-structure-in-2010.png"><img class="alignnone size-full wp-image-6" title="Physical branch structure in 2010" src="http://drainbrain.wordpress.com/files/2009/11/physical-branch-structure-in-2010.png" alt="" width="179" height="169" /></a></p>
<p>This screenshot shows the branch structure in physical form. Notice that branches look different to folders. Also notice that here the Dev and QA branches are siblings in the physical structure, where as in the logical diagram QA is a child of Dev.</p>
<p>Branches can be made quite easily by dragging and dropping from the logical diagram or right clicking a branch on the physical diagram and choosing “Create new branch”. The whole branch process has been streamlined as well. Apparently old TFS checked out all the files onto your machine and waited for you to check them in as a pending change. HUGE waste of time, effort and bandwidth. Now it just makes the branch on the server and you can check it out when you see fit.</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;"><!--[if gte mso 9]&#62;  Normal 0     false false false  EN-GB X-NONE X-NONE                           &#60;![endif]--><!--[if gte mso 9]&#62;                                                                                                                                            &#60;![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 72.0pt 72.0pt 72.0pt; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]&#62; &#60;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&#34;Table Normal&#34;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&#34;&#34;; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:&#34;Calibri&#34;,&#34;sans-serif&#34;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&#34;Times New Roman&#34;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--></p>
<p class="MsoNormal">Some of you may know that I’m a strong advocate for using some of the more flexible branching strategies available. TFS 2010 is adding in some extra branching support that should make this more compelling.</p>
<p><span style="font-size:11pt;line-height:115%;font-family:&#38;">TFS 2010 knows about branches explicitly. That is, you tell it “this folder is a branch” and it can track things around in a nice visual form. You start out with marking your trunk/mainline branch, then branching from that. Visual studio tracks what gets branched where and can show you the relationships between branches in a visual form.</span></p>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA["Dryp, Dryp, Dryp, Dryp"...]]></title>
<link>http://stinsoglullu.wordpress.com/2009/11/18/dryp-dryp-dryp-dryp/</link>
<pubDate>Wed, 18 Nov 2009 10:30:05 +0000</pubDate>
<dc:creator>stinsoglullu</dc:creator>
<guid>http://stinsoglullu.wordpress.com/2009/11/18/dryp-dryp-dryp-dryp/</guid>
<description><![CDATA[Sikke da et vejr! Har lige været ude på en 2&#215;5 min&#8217;s cykeltur, og jeg er nu GENNEMBLØDT, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://stinsoglullu.wordpress.com/files/2009/11/regn1.jpg"><img class="aligncenter size-medium wp-image-575" title="regn" src="http://stinsoglullu.wordpress.com/files/2009/11/regn1.jpg?w=242" alt="" width="242" height="300" /></a></p>
<p>Sikke da et vejr! Har lige været ude på en 2&#215;5 min&#8217;s cykeltur, og jeg er nu GENNEMBLØDT, trods vandtæt jakke!</p>
<p>Nu jeg vaske tøj, og i aften får jeg gæster&#8230;</p>
<p><a href="http://stinsoglullu.wordpress.com/files/2009/11/laundry1.jpg"><img class="aligncenter size-medium wp-image-577" title="Laundry" src="http://stinsoglullu.wordpress.com/files/2009/11/laundry1.jpg?w=300" alt="" width="300" height="200" /></a></p>
<p>Ciao, Stina</p>
<p>Source:<a href="http://thefashionspot.com"> thefashionspot</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Reboot!]]></title>
<link>http://nzdotnetdude.wordpress.com/2009/11/17/reboot/</link>
<pubDate>Tue, 17 Nov 2009 05:04:44 +0000</pubDate>
<dc:creator>Mark</dc:creator>
<guid>http://nzdotnetdude.wordpress.com/2009/11/17/reboot/</guid>
<description><![CDATA[It’s been a while since I added to my series on VSTS 2010 in action, and a lot has happened since I ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>It’s been a while since I added to my series on VSTS 2010 in action, and a lot has happened since I posted Part 2. </p>
<p>For starters, VS2010 Beta 2 has been released. This refresh contains much more content around the Process Guidance for the MSF 5 process templates, and so I’ve taken a slight pause in transmission on this series in order to absorb this and to reboot, if you like, my series on VSTS2010. When I post again, I’ll be using, and referring to, the features in Beta 2. </p>
<p>This does mean that I’ll go back over what I’ve already covered too, and update it for the new bits. Conceptually it’s still the same, but it’s a chance for me to tidy up what I’ve said already so that it actually makes some sense! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>As well as this, the company I work for, Optimation, has re-launched it’s web presence, and the new website includes a <a href="http://www.optimation.co.nz/blog">company blog</a>, which I will be contributing to. In fact, these posts will be submitted to that blog also, and cross posted here. I can’t guarantee the order in which this will happen though, so I recommend that if you’re <em>really</em> hanging out for a new fix of VSTS2010 goodness from me, you check both places. </p>
<p>Also, as I’m not the only person who’ll be contributing to the Optimation blog, a whole range of content will appear there, from some really smart cookies, so do go and check it out! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, to summarise, I’m re-starting the series, and it’ll be cross-posted (hopefully – depends on approval from the “editorial team” at work) on the blog of the company I work for, Optimation.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[VS2010: Как выполнять 'Publish' из Team Build если у вас есть C++ проекты?]]></title>
<link>http://vstsblog.ru/2009/11/16/vs2010-%d0%ba%d0%b0%d0%ba-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d1%8f%d1%82%d1%8c-publish-%d0%b8%d0%b7-team-build-%d0%b5%d1%81%d0%bb%d0%b8-%d1%83-%d0%b2%d0%b0%d1%81-%d0%b5%d1%81%d1%82%d1%8c-c/</link>
<pubDate>Mon, 16 Nov 2009 19:53:49 +0000</pubDate>
<dc:creator>Vladimir Gusarov</dc:creator>
<guid>http://vstsblog.ru/2009/11/16/vs2010-%d0%ba%d0%b0%d0%ba-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d1%8f%d1%82%d1%8c-publish-%d0%b8%d0%b7-team-build-%d0%b5%d1%81%d0%bb%d0%b8-%d1%83-%d0%b2%d0%b0%d1%81-%d0%b5%d1%81%d1%82%d1%8c-c/</guid>
<description><![CDATA[У меня есть solution, в котором находятся разнородные проекты &#8211; C#/C++, EXE/DLL/Library. В общ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>У меня есть solution, в котором находятся разнородные проекты &#8211; C#/C++, EXE/DLL/Library. В общем, практически весь букет. Да, и самое главное &#8211; там ещё есть Сloud Service, т.е. Azure. И всё это собирается при помощи Team Build 2008.</p>
<p>В какой-то момент мне очень захотелось получать в результате сборки готовый пакет для развёртывания в Azure. Для этого надо выполнять target &#8220;Publish&#8221; для .ccproj проектов. Добавил в tfsbuild.proj следующую строчку:</p>
<p><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#60;</span></span></span></span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">SolutionToPublish</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"> </span></span></span><span style="font-family:Consolas;color:#ff0000;font-size:x-small;"><span style="font-family:Consolas;color:#ff0000;font-size:x-small;"><span style="font-family:Consolas;color:#ff0000;font-size:x-small;">Include</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">=</span></span></span><span style="font-family:Consolas;font-size:x-small;"><span style="font-family:Consolas;font-size:x-small;">&#8220;</span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">$(SolutionRoot)\MySolution.sln</span></span></span><span style="font-family:Consolas;font-size:x-small;"><span style="font-family:Consolas;font-size:x-small;">&#8220;</span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">/&#62;</span></span></span></p>
<p>Всё было бы хорошо, но:</p>
<ol>
<li>По-умолчанию MSBuild считает необходимым публиковать все EXE проекты. Сделано это было для .Net приложений. В этом случае он генерирует ClickOnce manifest.</li>
<li>Начиная с версии 10, в Visual Studio все C++ проекты перешли на MSBuild (ура, VCBUILD  прощай!), но в данном случае это помешало.</li>
</ol>
<p><!--more-->В силу вышеперечисленных обстоятельств, некто, не будем показывать на него пальцами, пытается построить ClickOnce manifest для C++ EXE. Естественно, с достаточно предсказуемым результатом &#8211; манифеста то нет!</p>
<p>Внимательное исследование файла &#8216; Microsoft.Common.targets&#8217; показало, что проблему можно вылечить указав</p>
<p><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#60;</span></span></span></span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">PublishableProject</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#62;</span></span></span><span style="font-family:Consolas;font-size:x-small;"><span style="font-family:Consolas;font-size:x-small;">false</span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#60;/</span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">PublishableProject</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#62;</span></span></span></p>
<p>в файле .vcxproj. Я вставил определение этого свойства сразу после определения _ProjectFileVersion:</p>
<p><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#60;</span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">PropertyGroup</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#62;<br />
</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">  &#60;</span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">_ProjectFileVersion</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#62;</span></span></span><span style="font-family:Consolas;font-size:x-small;"><span style="font-family:Consolas;font-size:x-small;">10.0.20728.1</span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#60;/</span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">_ProjectFileVersion</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#62;<br />
</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">  &#60;</span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">PublishableProject</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#62;</span></span></span><span style="font-family:Consolas;font-size:x-small;"><span style="font-family:Consolas;font-size:x-small;">false</span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#60;/</span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">PublishableProject</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#62;<br />
</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">  &#60;</span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">OutDir</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"> </span></span></span><span style="font-family:Consolas;color:#ff0000;font-size:x-small;"><span style="font-family:Consolas;color:#ff0000;font-size:x-small;"><span style="font-family:Consolas;color:#ff0000;font-size:x-small;">Condition</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">=</span></span></span><span style="font-family:Consolas;font-size:x-small;"><span style="font-family:Consolas;font-size:x-small;">&#8220;</span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#8216;$(Configuration)&#124;$(Platform)&#8217;==&#8217;Debug&#124;Win32&#8242;</span></span></span><span style="font-family:Consolas;font-size:x-small;"><span style="font-family:Consolas;font-size:x-small;">&#8220;</span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#62;</span></span></span><span style="font-family:Consolas;font-size:x-small;"><span style="font-family:Consolas;font-size:x-small;">..\..\bin\$(Configuration)\</span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#60;/</span></span></span><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;"><span style="font-family:Consolas;color:#a31515;font-size:x-small;">OutDir</span></span></span><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;"><span style="font-family:Consolas;color:#0000ff;font-size:x-small;">&#62;<br />
&#8230;</span></span></span></p>
<p>Всё вышесказнное справедливо для Visual Studio 2010 Beta1/Beta2.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Материалы доклада по MS VS Team System 2010 на CEE-SECR 2009]]></title>
<link>http://ashamray.wordpress.com/2009/11/16/material_cee_secr2009/</link>
<pubDate>Mon, 16 Nov 2009 00:15:57 +0000</pubDate>
<dc:creator>Шамрай Александр</dc:creator>
<guid>http://ashamray.wordpress.com/2009/11/16/material_cee_secr2009/</guid>
<description><![CDATA[Презентация Видео Oбзор и архитектура Team System 2010 View more presentations from Александр Шамрай]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><table border="1">
<tbody>
<tr>
<td>Презентация</td>
<td>Видео</td>
</tr>
<tr>
<td><img style="visibility:hidden;width:0;height:0;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNTgyOTkwNDY3ODUmcHQ9MTI1ODI5OTA2NDAxOSZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJm89MDIwNTliMzYwMTdhNDM5YTg4ZDBhNzI3NDgyZDVmOTYmb2Y9MA==.gif" border="0" alt="" width="0" height="0" /></p>
<div id="__ss_2491135" style="width:425px;text-align:left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;text-decoration:underline;margin:12px 0 3px;" title="Oбзор и архитектура Team System 2010" href="http://www.slideshare.net/ashamray/o-team-system-2010-2491135">Oбзор и архитектура Team System 2010</a></div>
<div style="width:425px;text-align:left;"><iframe frameborder="0" width="433" height="363" src="http://wpcomwidgets.com/?width=425&amp;height=355&amp;src=http%3A%2F%2Fstatic.slidesharecdn.com%2Fswf%2Fssplayer2.swf%3Fdoc%3Drandom-091113041750-phpapp01%26stripped_title%3Do-team-system-2010-2491135&amp;quality=high&amp;wmode=tranparent&amp;_tag=gigya&amp;_hash=2adcef150759cd6f24fa7f66aa644bbb" id="2adcef150759cd6f24fa7f66aa644bbb"></iframe></div>
<div id="__ss_2491135" style="width:425px;text-align:left;">
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/ashamray">Александр Шамрай</a>.</div>
</div>
</td>
</tr>
<tr>
<td>
<div id="__ss_2491063"><a title="Управление рабочими элементами в TFS 2010" href="http://www.slideshare.net/ashamray/tfs-2010">Управление рабочими элементами в TFS 2010</a></div>
<div><a title="Управление рабочими элементами в TFS 2010" href="http://www.slideshare.net/ashamray/tfs-2010"></a><iframe frameborder="0" width="433" height="363" src="http://wpcomwidgets.com/?width=425&amp;height=355&amp;src=http%3A%2F%2Fstatic.slidesharecdn.com%2Fswf%2Fssplayer2.swf%3Fdoc%3Dtfsworkitemtracking1-091113040615-phpapp02%26stripped_title%3Dtfs-2010&amp;quality=high&amp;wmode=tranparent&amp;_tag=gigya&amp;_hash=1e0a094fbba9cddc4c0fcdd21ebfaf84" id="1e0a094fbba9cddc4c0fcdd21ebfaf84"></iframe></div>
<div id="__ss_2491063">
<div>View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/ashamray">Александр Шамрай</a>.</div>
</div>
</td>
<td><strong>Создание требований с TeamSpec в TFS 2008</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/1N-A9SLWF5g&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/1N-A9SLWF5g&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><strong>Изменение требований вне системы и сохранение в TFS 2008</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/5Uiql3gTAJw&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/5Uiql3gTAJw&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><strong>Создание плана работ в TFS 2010</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/dTznZ3z7EQs&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/dTznZ3z7EQs&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><strong>Использование Excel для рабочих элементов TFS 2010</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/trdZLVgtLno&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/trdZLVgtLno&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><strong>Изменение рабочего элемента в Process Template Designer для TFS 2008</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/BO8yXQR7-XE&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/BO8yXQR7-XE&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></td>
</tr>
<tr>
<td>
<div id="__ss_2491114"><a title="Управление версиями TFS 2010" href="http://www.slideshare.net/ashamray/tfs-2010-2491114">Управление версиями TFS 2010</a></div>
<div><iframe frameborder="0" width="433" height="363" src="http://wpcomwidgets.com/?width=425&amp;height=355&amp;src=http%3A%2F%2Fstatic.slidesharecdn.com%2Fswf%2Fssplayer2.swf%3Fdoc%3Drandom-091113041436-phpapp01%26stripped_title%3Dtfs-2010-2491114&amp;quality=high&amp;wmode=tranparent&amp;_tag=gigya&amp;_hash=4b061ec38b3d08c9ce9a13376c1c349f" id="4b061ec38b3d08c9ce9a13376c1c349f"></iframe></div>
<div id="__ss_2491114">
<div>View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/ashamray">Александр Шамрай</a>.</div>
</div>
</td>
<td><strong>Параллельная работа с одним файлом в TFS 2010</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/FWm_M_QVS3w&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/FWm_M_QVS3w&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><strong>Отложить в TFS 2010</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/1Ix4uL8p7lI&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/1Ix4uL8p7lI&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><strong>Использование веток в TFS 2010</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/HYz2R6F8wQs&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/HYz2R6F8wQs&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><strong>Политики постановки в TF 2010</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/I9QNmAf3sUI&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/I9QNmAf3sUI&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></td>
</tr>
<tr>
<td>
<div id="__ss_2491087">
<div id="__ss_2491087"><a title="Управление качеством проекта разработки ПО в TFS 2010" href="http://www.slideshare.net/ashamray/tfs-2010-2491087">Управление качеством проекта разработки ПО в TFS 2010</a><iframe frameborder="0" width="433" height="363" src="http://wpcomwidgets.com/?width=425&amp;height=355&amp;src=http%3A%2F%2Fstatic.slidesharecdn.com%2Fswf%2Fssplayer2.swf%3Fdoc%3Drandom-091113041049-phpapp01%26stripped_title%3Dtfs-2010-2491087&amp;quality=high&amp;wmode=tranparent&amp;_tag=gigya&amp;_hash=12a14c5142e444b5f30da4767fca728b" id="12a14c5142e444b5f30da4767fca728b"></iframe></p>
<div>View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/ashamray">Александр Шамрай</a>.</div>
</div>
</div>
</td>
<td><strong>Unit-тесты в TFS 2010</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/xGuiBUhXLzI&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/xGuiBUhXLzI&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><strong>Автоматизация функционального тестирования в TFS 2010</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/Mc7He0J54A8&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/Mc7He0J54A8&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><strong>Создание сборки в TFS 2010</strong></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/T6GDJ6RwAUU&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/T6GDJ6RwAUU&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></td>
</tr>
</tbody>
</table>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:96px;width:1px;height:1px;"><a href="http://www.youtube.com/watch?v=BO8yXQR7-XE">Изменение рабочего элемента в Process Template Designer для TFS 2008</a></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SECR 2009: Team Foundation Server – роскошь или средство передвижения?]]></title>
<link>http://vstsblog.ru/2009/11/13/secr-2009-team-foundation-server-%e2%80%93-%d1%80%d0%be%d1%81%d0%ba%d0%be%d1%88%d1%8c-%d0%b8%d0%bb%d0%b8-%d1%81%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b2%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%b4%d0%b2%d0%b8/</link>
<pubDate>Fri, 13 Nov 2009 09:18:34 +0000</pubDate>
<dc:creator>Vladimir Gusarov</dc:creator>
<guid>http://vstsblog.ru/2009/11/13/secr-2009-team-foundation-server-%e2%80%93-%d1%80%d0%be%d1%81%d0%ba%d0%be%d1%88%d1%8c-%d0%b8%d0%bb%d0%b8-%d1%81%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b2%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%b4%d0%b2%d0%b8/</guid>
<description><![CDATA[В конце октября в Москве прошла международная конференция SECR 2009, на которой я читал доклад Team ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>В конце октября в Москве прошла международная конференция <a href="http://cee-secr.org">SECR 2009</a>, на которой я читал доклад <a href="http://cee-secr.org/regular-talks/gusarov/">Team Foundation Server – роскошь или средство передвижения? Практический опыт разработки «коробочного» продукта</a>. Презентацию можно скачать <a href="http://vgusarov.wordpress.com/files/2009/11/secr09-team-system-d0bed0bfd18bd182-d0b8d181d0bfd0bed0bbd18cd0b7d0bed0b2d0b0d0bdd0b8d18f.pdf">здесь</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Kate]]></title>
<link>http://theblossomingtree.wordpress.com/2009/11/13/kate/</link>
<pubDate>Fri, 13 Nov 2009 06:05:28 +0000</pubDate>
<dc:creator>theblossomingtree</dc:creator>
<guid>http://theblossomingtree.wordpress.com/2009/11/13/kate/</guid>
<description><![CDATA[TFS]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><img class="aligncenter size-full wp-image-1125" title="29wuhd" src="http://theblossomingtree.wordpress.com/files/2009/11/29wuhd.jpg" alt="29wuhd" width="500" height="679" />TFS</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
