<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>TFS Version Control and VS Integration : TFS Version Control</title><link>http://blogs.msdn.com/benryan/archive/tags/TFS+Version+Control/default.aspx</link><description>Tags: TFS Version Control</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>How to make TFS Offline strictly solution-based</title><link>http://blogs.msdn.com/benryan/archive/2007/12/12/how-to-make-tfs-offline-strictly-solution-based.aspx</link><pubDate>Wed, 12 Dec 2007 21:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6749943</guid><dc:creator>benryan</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/benryan/comments/6749943.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benryan/commentrss.aspx?PostID=6749943</wfw:commentRss><description>&lt;P&gt;For some users it may be a bit offputting that taking one solution offline causes all other solutions bound to that same server to go offline&amp;nbsp;when they are opened (assuming no "Go Online" operations in the interim).&amp;nbsp; There is a registry key value that may be specified to tell VS to ignore the server-based Offline setting and to only utilize the per-solution Offline setting.&lt;/P&gt;
&lt;P&gt;To turn off server-based offline support:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Go to the registry&amp;nbsp;(e.g. regedit)&lt;/LI&gt;
&lt;LI&gt;Add a string value named, &lt;STRONG&gt;&lt;EM&gt;IgnoreServerBasedOfflineFlags&lt;/EM&gt;&lt;/STRONG&gt;,&amp;nbsp;under&amp;nbsp;&lt;BR&gt;HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\SourceControl&lt;/LI&gt;
&lt;LI&gt;Set&amp;nbsp;the value to "&lt;EM&gt;True&lt;/EM&gt;".&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;NOTE: My original text for this blog entry had stated that you set the value to "False" in step 3.&amp;nbsp; Obviously, this was incorrect.&amp;nbsp; Sorry for the confusion.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6749943" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+Version+Control/default.aspx">TFS Version Control</category><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+2008/default.aspx">TFS 2008</category><category domain="http://blogs.msdn.com/benryan/archive/tags/Offline/default.aspx">Offline</category></item><item><title>When and how does my solution go "offline"?</title><link>http://blogs.msdn.com/benryan/archive/2007/12/12/when-and-how-does-my-solution-go-offline.aspx</link><pubDate>Wed, 12 Dec 2007 21:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6749793</guid><dc:creator>benryan</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/benryan/comments/6749793.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benryan/commentrss.aspx?PostID=6749793</wfw:commentRss><description>&lt;P&gt;TFS 2008 adds improved support for "offline" scenarios.&amp;nbsp; This blog post identifies the scenarios under which a solution will be placed in "offline" mode.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;If the Visual Studio IDE is unable to connect to the TFS server when it is &lt;STRONG&gt;&lt;U&gt;opening&lt;/U&gt;&lt;/STRONG&gt; the solution, then it will &lt;STRONG&gt;mark the solution&lt;/STRONG&gt; as being offline.&amp;nbsp; It will also &lt;STRONG&gt;mark the TFS server&lt;/STRONG&gt; as being offline.&lt;BR&gt;&lt;BR&gt;A messagebox will be displayed indicating the solution was taken offline and a message to the same effect will appear in the Output window.&lt;BR&gt;&lt;BR&gt;-OR-&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;If the Visual Studio IDE is opening a solution and finds the TFS server to which the solution is bound is marked as offline, then VS will &lt;STRONG&gt;mark the solution&lt;/STRONG&gt; as being offline&lt;BR&gt;&lt;BR&gt;In this scenario, a message about the solution being opened offline will appear in the Output window, but &lt;STRONG&gt;&lt;U&gt;no messagebox will appear&lt;/U&gt;&lt;/STRONG&gt;.&lt;/LI&gt;&lt;/OL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NOTES&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Offline detection is done ONLY during solution open&lt;/STRONG&gt;.&amp;nbsp; Failures to connect to the server during other version control operations within VS do &lt;U&gt;not&lt;/U&gt;&amp;nbsp;affect the offline state of the solution or server.&lt;BR&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;The offline state for the solution is stored in the solution's local .suo file.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;When the server is marked offline, we also turn off the server's "AutoReconnect" setting.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;The server's offline state is stored in a registry value named &lt;EM&gt;&lt;STRONG&gt;Offline,&lt;/STRONG&gt;&lt;/EM&gt; and the AutoReconnect state is stored in in a value named &lt;STRONG&gt;&lt;EM&gt;AutoReconnect&lt;/EM&gt;&lt;/STRONG&gt;.&amp;nbsp; Both of these live under the key: &lt;BR&gt;HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\Servers\&lt;EM&gt;&amp;lt;tfs server name&amp;gt;&lt;BR&gt;&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;A solution remains offline until it is explicitly taken online.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;A TFS&amp;nbsp;server remains marked offline until an offline solution bound to that server is taken online.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Opening a solution that was previously marked offline while its server is still marked offline opens the solution without any messageboxes appearing.&amp;nbsp; We will present a message in the Output window indicating the solution is still offline.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Opening a solution that was previously marked offline when its server is marked online&amp;nbsp;presents the user with a messagebox asking if the user wishes to take the solution online.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6749793" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benryan/archive/tags/Team+Foundation/default.aspx">Team Foundation</category><category domain="http://blogs.msdn.com/benryan/archive/tags/Integration/default.aspx">Integration</category><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+Version+Control/default.aspx">TFS Version Control</category><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+2008/default.aspx">TFS 2008</category><category domain="http://blogs.msdn.com/benryan/archive/tags/Offline/default.aspx">Offline</category></item><item><title>Get Latest on Checkout depends on a TFS 2008 server</title><link>http://blogs.msdn.com/benryan/archive/2007/12/12/get-latest-on-checkout-depends-on-a-tfs-2008-server.aspx</link><pubDate>Wed, 12 Dec 2007 21:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6749473</guid><dc:creator>benryan</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/benryan/comments/6749473.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benryan/commentrss.aspx?PostID=6749473</wfw:commentRss><description>&lt;P&gt;It is worth noting that the "Get Latest on Checkout" feature requires server support to function.&amp;nbsp; In other words, you must connect to a TFS 2008 (or later) server for Get Latest on Checkout to work.&amp;nbsp; There has been some confusion in the forums because the Get Latest on Checkout option appears to be configurable on the client even when connected to a TFS 2005 server.&amp;nbsp; It is unfortunate that we do not disable the Get Latest on Checkout configuration options under Tools-&amp;gt;Options-&amp;gt;Source Control and under the Team Project settings in this case, but these options are meaningless if you are not connected to a TFS 2008 server.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6749473" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benryan/archive/tags/Team+Foundation/default.aspx">Team Foundation</category><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+Version+Control/default.aspx">TFS Version Control</category><category domain="http://blogs.msdn.com/benryan/archive/tags/Get+Latest+on+Checkout/default.aspx">Get Latest on Checkout</category></item><item><title>Integrating TFS with Visual InterDev (and why it does not work)</title><link>http://blogs.msdn.com/benryan/archive/2007/05/04/integrating-tfs-with-visual-interdev-and-why-it-does-not-work.aspx</link><pubDate>Fri, 04 May 2007 20:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2412949</guid><dc:creator>benryan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/benryan/comments/2412949.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benryan/commentrss.aspx?PostID=2412949</wfw:commentRss><description>&lt;P&gt;This topic comes up quite often, so I thought I would write a blog entry.&amp;nbsp; For the most part this is basically a rehash of my posting to a forum thread a year ago.&amp;nbsp; See: &lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=275481&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=275481&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=275481&amp;amp;SiteID=1&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Technically, TFS integrates with Visual InterDev by using the TFS MSSCCI provider.&amp;nbsp; In reality this is less than useful.&amp;nbsp; InterDev only uses the MSSCCI interface to source control some local artifacts.&amp;nbsp; Your website is being placed under source control by the IIS server to which it is published.&amp;nbsp; As part of using FrontPage Server Extensions (FPSE) to publish your website to IIS, InterDev also uses FPSE to forward source control operations intended for the website to the IIS server.&amp;nbsp; Here is where the problem occurs.&amp;nbsp; The FPSE engine within IIS DOES NOT USE MSSCCI for source control!&amp;nbsp; Instead, FPSE in IIS uses a direct OLE connection to the Visual SourceSafe installation that is local to the IIS server (see: &lt;A title=http://www.codeproject.com/asp/VSS_and_VID.asp href="http://www.codeproject.com/asp/VSS_and_VID.asp" mce_href="http://www.codeproject.com/asp/VSS_and_VID.asp"&gt;&lt;U&gt;&lt;FONT color=#800080&gt;http://www.codeproject.com/asp/VSS_and_VID.asp&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; for more information).&amp;nbsp; Therefore, the fact that InterDev is configured to use the TFS MSSCCI plugin has no effect on how the website is actually put under source control since this happens at the IIS server.&amp;nbsp; Furthermore, it is not possible to configure the IIS server to utilize Team Foundation Version Control.&amp;nbsp; There currently are no plans of which I am aware that call for adding TFS integration to FPSE within IIS.&amp;nbsp; At present, if you use InterDev and FPSE for your website then you must use Visual SourceSafe as the repository.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2412949" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+MSSCCI/default.aspx">TFS MSSCCI</category><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+Version+Control/default.aspx">TFS Version Control</category><category domain="http://blogs.msdn.com/benryan/archive/tags/Visual+InterDev/default.aspx">Visual InterDev</category></item><item><title>How to make a project compatible with VS source control integration</title><link>http://blogs.msdn.com/benryan/archive/2006/12/22/how-to-make-a-project-compatible-with-vs-source-control-integration.aspx</link><pubDate>Fri, 22 Dec 2006 21:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1349170</guid><dc:creator>benryan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/benryan/comments/1349170.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benryan/commentrss.aspx?PostID=1349170</wfw:commentRss><description>&lt;P&gt;The following are the necessary mininum steps required to integrate a new project type with source control within Visual Studio.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The project must implement &lt;STRONG&gt;Microsoft.VisualStudio.Shell.Interop.IVsSccProject2&lt;/STRONG&gt; (&lt;A class="" title=IVsSccProject2 href="http://msdn2.microsoft.com/en-gb/library/microsoft.visualstudio.shell.interop.ivssccproject2(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-gb/library/microsoft.visualstudio.shell.interop.ivssccproject2(VS.80).aspx"&gt;documentation&lt;/A&gt;).&lt;BR&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;&lt;STRONG&gt;GetSccFiles&lt;/STRONG&gt;&lt;/EM&gt; - return which files are controllable for the given item ID&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;&lt;STRONG&gt;GetSccSpecialFiles&lt;/STRONG&gt; &lt;/EM&gt;- return hidden files for the given item ID&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;&lt;STRONG&gt;SetSccLocation&lt;/STRONG&gt;&lt;/EM&gt; - persist the SCC settings to the project file&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;&lt;STRONG&gt;SccGlyphChange&lt;/STRONG&gt;&lt;/EM&gt; - notifies project that changes have been made to the indicated items' SCC glyphs&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;The project must utilize &lt;STRONG&gt;Microsoft.VisualStudio.Shell.Interop.IVsSccManager2&lt;/STRONG&gt; (&lt;A class="" title=IVsSccManager2 href="http://msdn2.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivssccmanager2(vs.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivssccmanager2(vs.80).aspx"&gt;documentation&lt;/A&gt;).&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;EM&gt;RegisterSccProject&lt;/EM&gt;&lt;/STRONG&gt; - call when the project is opened&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;&lt;STRONG&gt;UnregisterSccProject&lt;/STRONG&gt; &lt;/EM&gt;- call when the project is closed&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;EM&gt;GetSccGlyphs&lt;/EM&gt;&lt;/STRONG&gt; - call to get source control glyphs and source control status&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;The project must utilize &lt;STRONG&gt;Microsoft.VisualStudio.Shell.Interop.IVsQueryEditQuerySave2&lt;/STRONG&gt; (&lt;A class="" title=IVsQueryEditQuerySave2 href="http://msdn2.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivsqueryeditquerysave2(vs.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivsqueryeditquerysave2(vs.80).aspx"&gt;documentation&lt;/A&gt;).&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;EM&gt;QueryEditFiles&lt;/EM&gt;&lt;/STRONG&gt; - call before editing a file in the project to notify listeners (e.g. SCC)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;EM&gt;QuerySaveFiles&lt;/EM&gt;&lt;/STRONG&gt; - call before saving a file in the project to notify listeners (e.g. SCC)&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;The project must utilize &lt;STRONG&gt;Microsoft.VisualStudio.Shell.Interop.IVsTrackProjectDocuments2&lt;/STRONG&gt; (&lt;A class="" title=IVsTrackProjectDocuments2 href="http://msdn2.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivstrackprojectdocuments2(vs.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivstrackprojectdocuments2(vs.80).aspx"&gt;documentation&lt;/A&gt;)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;EM&gt;OnQuery*&lt;/EM&gt;&lt;/STRONG&gt; - call before attempting the add/rename/move/etc. operation to notify listeners (e.g. SCC) and to give listeners the chance to veto the attempt.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;EM&gt;OnAfter*&lt;/EM&gt;&lt;/STRONG&gt; - call after the operation has been performed to permit listeners (e.g. SCC) to perform related operations (e.g. pend an SCC add).&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;To permit SCC commands to show in the context menus, the menu should contain the following groups:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;EM&gt;guidSHLMainMenu::IDG_VS_CTXT_SOLUTION_SCC&lt;/EM&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;EM&gt;guidSHLMainMenu::IDG_VS_CTXT_PROJECT_SCC&lt;/EM&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;EM&gt;guidSHLMainMenu::IDG_VS_CTXT_ITEM_SCC&lt;/EM&gt;&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/OL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1349170" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benryan/archive/tags/Integration/default.aspx">Integration</category><category domain="http://blogs.msdn.com/benryan/archive/tags/Version+Control/default.aspx">Version Control</category><category domain="http://blogs.msdn.com/benryan/archive/tags/SCC/default.aspx">SCC</category><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+Version+Control/default.aspx">TFS Version Control</category></item><item><title>Get Latest on Checkout</title><link>http://blogs.msdn.com/benryan/archive/2006/12/22/get-latest-on-checkout.aspx</link><pubDate>Fri, 22 Dec 2006 19:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1348932</guid><dc:creator>benryan</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/benryan/comments/1348932.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benryan/commentrss.aspx?PostID=1348932</wfw:commentRss><description>At the end of November my crew wrapped up our work on the Get Latest on Checkout feature and checked it into the Orcas sourcebase.&amp;nbsp; This feature is obviously targetted at&amp;nbsp;users who are more comfortable with the Visual SourceSafe model of exclusive locking combined with Get Latest on Checkout.&amp;nbsp; Note that the TFS Get Latest on Checkout does not implicitly turn on exclusive locking; you will need to do that explicitly.&amp;nbsp; Details about this feature and others our group has been working on for Orcas can be found at &lt;A class="" title="Feature Specifications" href="http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx" mce_href="http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx"&gt;Feature Specifications for Visual Studio and .NET Framework "Orcas"&lt;/A&gt; on MSDN.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1348932" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+Version+Control/default.aspx">TFS Version Control</category><category domain="http://blogs.msdn.com/benryan/archive/tags/Get+Latest+on+Checkout/default.aspx">Get Latest on Checkout</category></item><item><title>Version 1.2 of TFS MSSCCI Provider Released</title><link>http://blogs.msdn.com/benryan/archive/2006/12/21/version-1-2-of-tfs-msscci-provider-released.aspx</link><pubDate>Thu, 21 Dec 2006 23:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1342157</guid><dc:creator>benryan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/benryan/comments/1342157.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benryan/commentrss.aspx?PostID=1342157</wfw:commentRss><description>We have released an update to the TFS MSSCCI Provider.&amp;nbsp; An indepth description of the new features and bug fixes can be found in Michal Malecki's blog &lt;A class="" title="TFS MSSCCI Provider 1.2" href="http://blogs.msdn.com/michalma/archive/2006/12/20/msscci-1-2-arrived.aspx" mce_href="http://blogs.msdn.com/michalma/archive/2006/12/20/msscci-1-2-arrived.aspx"&gt;posting&lt;/A&gt;.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1342157" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+MSSCCI/default.aspx">TFS MSSCCI</category><category domain="http://blogs.msdn.com/benryan/archive/tags/TFS+Version+Control/default.aspx">TFS Version Control</category></item></channel></rss>