I wrote previously (http://1-800-magic.blogspot.com/2009/03/adventures-in-tfs-continued.html) about the incredible amount of pain TFS is to install, and put together a simple step-by-step guide on how to install it here: http://1-800-magic.blogspot.com/2009/03/how-to-install-tfs-on-single-domain.html. (Incidentally, this is now one of the most popular articles on the blog.)
Yesterday I spent about an hour trying to figure out how to allow my daughter to use TFS server that I've set up for our home projects.
In Perforce (Microsoft uses a derivative of Perforce for quite a few of its internal projects) everything is simple: you type "p4 protect" (or "sd protect" at Microsoft), it opens a file in a notepad, and you add a line that looks like this:
write user sergey * //depot/...And you are done.
Here's what you have to do in TFS:
(1) Add a user to a list of "licensed users". This list is not displayed by default when you navigate to the project's security settings, you have to click on a checkbox to make it display all groups.
I missed this step, and it was not mentioned on the TFS documentation page that deals with setting permissions (http://msdn.microsoft.com/en-us/library/bb558971.aspx). I performed all the magic incantations from that page, but TFS still would not connect.
And of course the error that it was showing listed security among three other options, but gave no suggestions of what might go wrong.
Eventually, a Google search on the error code led me to the words "licensed user", and then here: http://msdn.microsoft.com/en-us/library/ms404880.aspx.
(2) You have to add the user to Contributor group in your project using TFS Explorer.
This is described here: http://msdn.microsoft.com/en-us/library/bb558971.aspx.
(3) Separately, you have to grant the user access to the sharepoint site.
Also here: http://msdn.microsoft.com/en-us/library/bb558971.aspx.
(4) Separately, you have to grant the user access to the reporting portal.
And again, here: http://msdn.microsoft.com/en-us/library/bb558971.aspx.
I understand cutting features to make the deadlines, but c'mon, ladies and gentlemen of TFS, does this thing really have to be such a pain in the butt for the administrator? Especially that we're competing with Perforce where deployment is done by a single double-click?