<?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>Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx</link><description>Buck posted the preliminary plan on VSS-&amp;gt;Hatteras migration, be sure to check it out if you currently use VSS and might be looking to make the change. The comments are mainly focused on the drawbacks - you lose VSS sharing and pinning. I think between</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#174052</link><pubDate>Tue, 06 Jul 2004 19:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:174052</guid><dc:creator>Steve Perry</dc:creator><description>We fall into catagory 2. We have 3 builds of a product for the most part are identicle. 1 is the base product that most people run. the 2nd one is a striped down version that the data entry temps use and is specifily optimized for fast data entry. the 3rd build is an specialized version for our audit department that has specialized searching and auditing modules. We have classes and forms that are shared across all three. Since we don't always build all 3 for every release (if the new feature does not affect one or more of the others). We are well aware that changes to the sare modules usualy break the other builds but fixing those is part of the preperation for releasing the new build. I have never used branching and merging but the big issue I see is that the person doing the merging must be very familar with all the changes, and if these changes have take place over a long period of time and by multiple developers, you are back to the same issue as sharing. To me sharing is very usefull and would be a huge loss.</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#174134</link><pubDate>Tue, 06 Jul 2004 20:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:174134</guid><dc:creator>Chris</dc:creator><description>Thanks for the feedback, Steve.&lt;br&gt;&lt;br&gt;I will make the 'claim' that you'd like the branch and merge model better once you got used to it, though I'm not saying I'm so sure of it that you'd be crazy not to do it. You're in that gray area where it's hard to say, in a vacuum, whether you'd spend less time fixing breaking changes with sharing, or less time tweaking a merge when applying it to your &amp;quot;one-off&amp;quot; releases.&lt;br&gt;&lt;br&gt;If you don't mind my asking, about how many devs do you have (either touching the shared code, or across the 3 projects - whatever ballpark number you don't mind sharing)? I think people don't really have problems with sharing until the number of people touching the codebase passes some certain size, but pinning down that size isn't an exact science, since there are a lot of other variables, e.g. how much of the codebase is shared vs. project-specific, how many projects include the shared code, etc.&lt;br&gt;&lt;br&gt;To contrast the lack of sharing, what features of Hatteras are you most excited about? Or, what limitations in VSS would you most like to move away from?</description></item><item><title>Chris Rathjen on Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#174305</link><pubDate>Tue, 06 Jul 2004 22:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:174305</guid><dc:creator>Rob Caron's Blog</dc:creator><description /></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#174521</link><pubDate>Wed, 07 Jul 2004 03:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:174521</guid><dc:creator>Steve Perry</dc:creator><description>There are currently 6 developers working on the project(s). Since this application has been around for 5 years (vb6) there have been as many as 10 developers. The core project contains 197 files of those only about 20-30 are not share with one or both of the other projects. The main project is on 1-2 month build/release cycles, the other 2 project can go anywhere from 3-6 months between build/releases.&lt;br&gt;&lt;br&gt;As far as what features of Hatteras I'm excited about? The only thing I've read about is the intergration with the bug/task tracking. Intergrating the association with the files that change and the task associated with the change will be a great thing.&lt;br&gt;&lt;br&gt;Thanks for the terrific blog, and fantastic information :)</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#174644</link><pubDate>Wed, 07 Jul 2004 06:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:174644</guid><dc:creator>Chris</dc:creator><description>Steve,&lt;br&gt;&lt;br&gt;I'm pretty excited about the Work Item/Source Control integration as well. In fact, I worked on Currituck, the work item tracking project, in the earlier stages before moving to Hatteras, and I've &amp;quot;rolled my own&amp;quot; bug tracker at a previous company, so I can tell first hand how nice it'll be.&lt;br&gt;&lt;br&gt;I'm still convinced that helping move people interested in the Team System suite is the Right Thing To Do, but hearing people pining for pinning (heh) and missing sharing makes me realize we need to make that transistion as painless as possible. Part of that clearly needs to be a &amp;quot;So you like sharing...&amp;quot; document that helps ease the transition into the branch/merge model. I think branch/merge has a reputation as an intimidating way to handle shared source code (in general, not just in MS land), and that's something we'll have to tackle.&lt;br&gt;&lt;br&gt;When I discussed the sharing issue today, someone else mentioned reorganzing the source tree such that you only *need* one copy of the code that's shared. I assume you've considered and rejected that for one reason or another. I'm curious, if so - maybe we can address that blocking issue instead? The build system in Whidbey has some considerable changes from the previous releases, and so I'm wondering if there's a new flexibility there that might help.</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#177430</link><pubDate>Thu, 08 Jul 2004 19:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:177430</guid><dc:creator>Steve Perry</dc:creator><description>I guess the one of the main problems with branching and merging today is that you have to start off sharing anyway. I also ran into a problem a couple of days ago, after reading you comments, I was presented with a problem in which I needed to update a web service that is in production, but we have made lots of changes that are in testing, and this change needs to go out right away. So I attempted to branch from a labeled earlier version. So Long story short, I did'nt do it right, got confused and ended up losing (deleted and purged) the most recent version of the web service. So what I'm trying to say is branching is not an easy to use or understand. &lt;br&gt;I will come around, but its just going to take a while. &lt;br&gt;Once again thanks for your time.</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#177490</link><pubDate>Thu, 08 Jul 2004 20:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:177490</guid><dc:creator>Chris</dc:creator><description>Yeah - the fact that Hatteras doesn't use the sharing model will feel different for people coming from VSS, but your scenario is a typical reason why you *would* create a branch instead of a share - you can safely work on fixes to the production in a &amp;quot;release&amp;quot; branch while doing new feature work in the main branch (for example).&lt;br&gt;&lt;br&gt;So, in your case, even if you didn't create it at the time, in Hatteras you can branch from a non-tip version (the one you labelled as the release version). Checkins to each branch do not affect the other (as they would with sharing); instead, you merge from one to the other to move changes between the branches. &lt;br&gt;&lt;br&gt;For this specific situation, that sounds like that would be preferable to sharing, but there are plenty of situations where sharing is preferable (when you *know* you *always* want the changes in one branch to immediately take effect in the other branch).&lt;br&gt;&lt;br&gt;I need to get a list of common usage scenarios worked up, and show how VSS and Hatteras treat each one - maybe that will help people decide which is right (or &amp;quot;more right&amp;quot;) for them.</description></item><item><title>Shared files</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#181225</link><pubDate>Tue, 13 Jul 2004 03:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:181225</guid><dc:creator>David Chapman</dc:creator><description>We use shared files far more than we probably should but there is one scenario where it's invaluable: when we share a common file defining our file format.  We have multiple products that read the same proprietary file format.  If someone makes a change to this file in one product we WANT the other products to break if they haven't been updated.</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#181710</link><pubDate>Tue, 13 Jul 2004 16:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:181710</guid><dc:creator>Anna-Jayne Metcalfe</dc:creator><description>The scenario David Chapman identified (common header files) is one we use heavily too...and one I personally don't think suits the branch/merge model at all. How does Hatteras cope with that scenario??&lt;br&gt;&lt;br&gt;That said, in every other case where we've used sharing/pinning it's been because branch/merge is so poorly supported in VSS. Pinning is a nightmare in the VSS IDE.&lt;br&gt;&lt;br&gt;One question: Does Hatteras truly support branched projects, or is it file orientated in the same way VSS is? For example, I'd like to see files added to a development branch automatically propagated to production branches when they are raised to the next project version...</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#181718</link><pubDate>Tue, 13 Jul 2004 16:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:181718</guid><dc:creator>Chris</dc:creator><description>David,&lt;br&gt;&lt;br&gt;Makes you almost wish Windows had symlinks, eh? :)&lt;br&gt;&lt;br&gt;The scenario you put forward is one where sharing makes perfect sense, if pointing the multiple projects at the same *one* file just isn't possible or feasible (and I know that can happen).</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#181750</link><pubDate>Tue, 13 Jul 2004 17:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:181750</guid><dc:creator>Chris</dc:creator><description>Anna-Jayne: Tough, specific questions - my favorite :)&lt;br&gt;&lt;br&gt;Re Common files: Off-hand, it looks like Whidbey supports this by adding existing items with &amp;quot;Add as Link&amp;quot; from the add menu in addition to the normal Add (Add, as you probably know, copies the item even if you added it as an existing item).&lt;br&gt;&lt;br&gt;A linked item stays wherever you added it from, but otherwise is treated as any other file in the project, *as far as I can tell* (I'm no Solution Explorer expert), can be compiled against, etc. You can only remove the link from the solution explorer, rather than delete or rename the item, but that's probably A Good Idea anyway, given that it's a linked item.&lt;br&gt;&lt;br&gt;The answer to your project branch question is mostly yes and partly no. Bear with me.&lt;br&gt;&lt;br&gt;We branch and merge items on a per-file basis, in terms of how we track item history. However, you can perform branch and merge operations from any level in a tree of files recursively. So, if the *server* tree structure of your project is such that the new items are under the project root, then yes, any additions would be merged (as branched items) when you merged the project's changes.&lt;br&gt;&lt;br&gt;The reason I emphasized the &amp;quot;server&amp;quot; tree is the fact that you can remap the way the files are located on your client workspace to be different than they're organized on the server. Generally, that's something you wouldn't want to get too fancy with; it's a feature that (to use a popular saying in MS land) gives you just enough rope to shoot yourself in the foot with.&lt;br&gt;&lt;br&gt;But, it can come in handy to help address your need (project-oriented branch/merge) - say you version some binaries that are stored in $/ProjectFoo/lib ($/ is the semantic for server paths in Hatteras), but the way your build is setup, you want them in c:\foo\bin\lib on your machine, instead of C:\scc\ProjectFoo\lib, where they'd end up by default. No problem - you'd just remap $/Project/lib to c:\foo\bin\lib in your client workspace (similarly to the way you'd override a child node's local/working folder in VSS). They'd still get branched/merged appropriately when you did a branch or merge of $/ProjectFoo to $/ProjectBar (for example). &lt;br&gt;&lt;br&gt;My assumption, of course, is that the single-rooted tree makes sense for the server organization, and you'd only need to reparent items on the workspace for some practical reason (the nature of your build system, for example).&lt;br&gt;&lt;br&gt;I have to admit that I have very limited experience with pinning, or (more accurately) the situations that prompt people to need it. I've found myself getting a specific version of a file and making it writable, so I don't sync newer versions - but I assume that's a pretty limited example of a pin-like situation, and a hack to boot. What's a better example of a situation/problem where pinning seemed like the solution?</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#181803</link><pubDate>Tue, 13 Jul 2004 18:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:181803</guid><dc:creator>Chris</dc:creator><description>Oh, one other possibility regarding shared headers - &lt;br&gt;&lt;br&gt;I don't know which version of Visual Studio introduced this, but Whidbey (at least) has a type of reference called a &amp;quot;Project Reference&amp;quot; - basically, referring to another project in the same solution, instead of a (usually external) .dll.&lt;br&gt;&lt;br&gt;Would putting your commmon headers in one project, and creating project references to it from your dependent projects, work for you? I can imagine situations where it wouldn't, so it's not a loaded question by any means.</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#182831</link><pubDate>Wed, 14 Jul 2004 11:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:182831</guid><dc:creator>Anna-Jayne Metcalfe</dc:creator><description>&amp;quot;Would putting your commmon headers in one project, and creating project references to it from your dependent projects, work for you? I can imagine situations where it wouldn't, so it's not a loaded question by any means.&amp;quot;&lt;br&gt;&lt;br&gt;Arguably that's the way to do it, but I would say that a team shouldn't *have* to change its project structure just to integrate a new source code control tool. As a VSS admin I know I'd not be popular if I suggested this!&lt;br&gt;&lt;br&gt;Surely it wouldn't be too difficult for Hatteras to support reasonably close equivalents to the VSS share/pin capability - even if largely for the purpose of migrating existing projects/databases?</description></item><item><title>re: Migrating from VSS to Hatteras</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#182944</link><pubDate>Wed, 14 Jul 2004 16:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:182944</guid><dc:creator>Chris</dc:creator><description>Well, I realized later that the project re-org has all sorts of problems depending on what exactly you're trying to do (for example, now they're in a separate assembly, which probably isn't &amp;quot;better&amp;quot; and would quite likely be worse), and it gets more complicated still if we're talking about native instead of managed code, etc.&lt;br&gt;&lt;br&gt;I fiddled around with the &amp;quot;add as link&amp;quot; approach yesterday, and that seems to work, though I'm sure there are drawbacks there, too (off hand, for example, I remember how contrived C++ include paths can be even without having to contend with links).&lt;br&gt;&lt;br&gt;It's not really a question of whether it's &amp;quot;too hard&amp;quot; to provide sharing/pinning; it has more to do with the branch/merge model and the various ways that sharing &amp;quot;breaks&amp;quot; the model, in ways that end up frustrating users. It's something you don't tend to run into until team size grows. Well, that's indirect - in truth, it's the number of people touching shared items and the number of times and item is shared that governs how likely you are to get bitten by it. &lt;br&gt;&lt;br&gt;Having said that, I wonder if there's a way to meet in the middle, perhaps using policies (that is, create a way to say &amp;quot;you can't share files normally&amp;quot; but allow users with certain permissions to share specific items). This is just stream-of-thought here, mind you. The problem is that one user's life might be made easier by having two items shared rather than just branched (to be merged between later); while another would find himself bitten by the &amp;quot;spooky action at a distance&amp;quot; aspect of sharing. To an admin or to either user, it's usually pretty easy to see which they'd prefer on a case-by-case basis; but the system lacks that context and insight.&lt;br&gt;&lt;br&gt;It's something we'll keep working on, to be sure.</description></item><item><title>Team System -- good information...</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#349513</link><pubDate>Sun, 09 Jan 2005 22:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:349513</guid><dc:creator>crashBlog</dc:creator><description /></item><item><title>Hatteras won't Share? NO FAIR!</title><link>http://blogs.msdn.com/crathjen/archive/2004/07/06/173942.aspx#441811</link><pubDate>Fri, 22 Jul 2005 18:02:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:441811</guid><dc:creator>Chris Rathjen</dc:creator><description>This has come up on my blog before, but since it came up in the forums again, I thought I’d point people...</description></item></channel></rss>