Sign In
Chris Rathjen
Warning: May be "Jab myself in the eye with a pencil" geeky.
Translate This Page
Translate this page
Powered by
Microsoft® Translator
Options
Blog Home
About
Email Blog Author
Share this
RSS for posts
Atom
RSS for comments
Search
Advanced search options...
Search In:
Everything
Blogs
Forums
People
Groups
Places
Pages
Date range:
All Time
Last Year
Last 6 Months
Last 3 Months
Last Month
Last Week
Last Two Days
Tags
Admin and Ops
Hatteras
Movies
Random Stuff
SharePoint
Team Foundation Server
TechEd
Ultimate Frisbee
Video Games
Visual Studio 2008
Visual Studio Team System
Archive
Archives
September 2008
(1)
June 2008
(3)
January 2008
(1)
December 2007
(1)
October 2007
(1)
September 2007
(1)
August 2007
(1)
July 2007
(2)
June 2007
(2)
May 2007
(1)
February 2007
(1)
January 2007
(1)
December 2006
(1)
November 2006
(1)
October 2006
(2)
September 2006
(3)
August 2006
(2)
July 2006
(1)
May 2006
(2)
April 2006
(2)
March 2006
(2)
February 2006
(2)
January 2006
(1)
December 2005
(1)
November 2005
(4)
October 2005
(2)
September 2005
(4)
August 2005
(3)
July 2005
(2)
June 2005
(3)
May 2005
(2)
April 2005
(3)
March 2005
(1)
February 2005
(4)
January 2005
(4)
November 2004
(1)
October 2004
(2)
September 2004
(2)
August 2004
(3)
July 2004
(6)
June 2004
(2)
Worth repeating...
MSDN Blogs
>
Chris Rathjen
>
Worth repeating...
Worth repeating...
CRathjen
1 Jul 2004 3:30 PM
Comments
4
This question has come up a lot lately when people hear about or look at Hatteras for the first time. We need an FAQ or something, in which something like the following would be one of the top 5 questions:
Q: Does Hatteras use the Visual SourceSafe exclusive checkout ('locking') model?
A:
Hatteras does
not
use exclusive checkout by default; concurrent checkouts are allowed. Version conflicts (e.g. someone checks in a new version between the time you check out and attempt to check in) are reported when a get or checkin attempt encounters them. However, exclusive checkout policy
can
be configured by the server administrator. Users with appropriate permissions can also lock items on the fly - for checkout (no-one else can check the item out until they check the item in or remove the lock), or for check-in (normal check out, but noone else can check IN until the locking user checks in or removes the lock).
Obviously there are any number of edge cases that the one-paragraph answer above doesn't cover, but that covers the typical case. So, if you like/prefer the SourceSafe approach, fear not - you can configure Hatteras to work similarly (or use SourceSafe 2005, for that matter). But I know that the SourceSafe model just
won't work
for lots of folks, and is at least a mild frustration from time to time for still more of you.
The tradeoff, of course, is having to resolve content differences between (at least) your version of the checked out file, the original file, and the latest version that someone else just checked in - we typically refer to these as “yours”, “base”, and “theirs” versions, respectively (you'll hear “original” instead of base and “tip” or “latest” instead of theirs, as well).
The following is old hat to anyone who's familiar with content merging, so skip ahead a paragraph if needs be. At first, the idea that the server could
reliably
perform an automatic merge between these 3 versions was almost magical to me, and I didn't really trust it to do so. You get used to it, I guess. Hatteras can be told to perform an automatic merge for you, assuming no
conflicting
changes, which is to say you changed the original file one way and the other user changed it in a different way, such that the code can't tell which is the 'right' one. However, it can safely put together any number of changes that are “yours” (you added/removed/changed a block of the file), “theirs” (they modified a block of the file), or “both” (you and the other user changed the file the same way), and produce a file that encompasses both of your changes. Obviously, whether this file will (for example)
compile
is a different story, but for typical scenarios (you modified a function, and I added a new function), it works wonderfully.
In addition to automatic merge, you can resolve content differences by telling Hatteras to discard the other user's changes (“
Do you challenge me to a duel, sir?”)
, discard your changes (“
Your kung foo is teh best!”
), stop trying to resolve the version conflict, or perform a “manual merge”. What's even cooler is that you'll be able to configure 3
rd
-party tools to perform content merges (and to view file differences), based on the file extension, if you so desire. I'm not saying we'll automagically be able to intelligently launch any diff or merge tool out there, but most tools out there take arguments in such a way that we can configure ourselves to call them appropriately. Someone post their favorite diff or merge tool (that I'd be able to setup myself) and I'll show it in action (time and license permitting :-). Among the ones we've tried it against are KDiff3, Araxis Merge, and SourceSafe's built-in visual merge tool.
4 Comments
Visual Studio Team System
,
Hatteras
Blog - Comment List MSDN TechNet
Comments
Loading...