TFS Interview Questions And Answers
What is Team Foundation Server? What does it cover – version control? build processes? bug tracking? task management?
Team Foundation Server is defined in the documentation as:
Team Foundation is a collection of collaborative technologies that support a team effort to deliver a product. While the Team Foundation technologies are typically employed by a software team to build a software product, they can also be used on other types of projects.
As the customer already noted three of the core deliverable of Team Foundation Server:
-List/Work Item Tracking
This is leaving off probably the two most import features of Team Foundation Server. By integrating the build process, source control, policy and work item tracking you can get a deep insight into what teams are doing and some analytics for future trends which leads to the 4th core deliverable of Team Foundation Server
Having insight into how a team is tracking is really only half the answer their also needs to a mechanism to share this information which brings us to the last feature of Team Foundation Server:
-Collaboration (Typically enabled through the Team Portal, Team Project and Process Guidance)
Interestingly it is the two missing categories that set Team Foundations Server apart from other offerings.
Explain TFS in respect to GIT?
Interview Questions On TFS
Can I install the TFS 2010 Build Service on my TFS 2008 build machine?
Yes, you can. Even though they both default to the same port (9191), they can share that port without any problems.
Can we disable the “Override CheckIn Policy Failure” checkbox? Can that be customized based on User Login, Policy Type of File type?
No. It is designed it to be fully auditable by including policy compliance data in the changeset details and in the check-in mail that is delivered but left it up to the developer to determine whether they have a good reason for overriding.
What are the different events available in the event model and is there any documentation on them?
There is really only one SCC event and that is the one that is raised on checkin. Subscription is via the general event model that is discussed in the extensibility kit.
Are Deletes you make in TFS 2010 Source Control physical or logical? Can accidental deletes be recovered?
Deletes are fully recoverable with the “undelete” operation. You wouldn’t want to do a SQL restore because that would roll back every change to the TFS in the time since the file was deleted.
Can different Checkin Policies be applied on different branches? E.g. Can they have QA specific policies applied on check-in in a QA branch?
How do I redisplay source control explorer?
Selecting View > Other Windows > Source Control Explorer will display the Source Control Explorer window within the IDE.
Why doesn’t source control detect that I have deleted a file/folder on my local disk?
The main scenario here is deleting a file (by mistake or intentionally) outside of Team Foundation and then trying the get that file back from source control. If the file version has not changed the server thinks the user already has the file and does not copy it over. This is because the server keeps a list of files that the user already has and when activities are made outside of source control this list becomes out of date. Team Foundation Version Control does have a force get the option which will provide the functionality needed to obtain the desired version but it is currently partially hidden under the Get Specific Version Dialog window as a checkbox item.
Can I compare directory structures in TFS Source Control?
No, you cannot compare Directory Structures in TFS Source Control
Can we configure SCC to not check-in the binary files? Where are such configurations done?
Team Foundation Version Control provides a way to limit check-ins by setting up check-in policies that are evaluated before a check-in can take effect. The easiest way to do this is by authoring a policy that checks if the user is trying to check-in a binary file from a given folder structure and reject or accept it in accordance.
How can I add non-solution items to source control?
This can be achieved by either clicking the Add icon or by going to File > Source Control and selecting the Add To Source Control menu item.
When a user “edits” a file in a “source controlled” project, it gets checked out automatically. Is this configurable? Can we change this behavior?
Yes it can be done by configuring TFS by going to Tools > Options > Source Control > Environment provides an option where a user can change the settings to not checkout files automatically on edit.
What plugin/extensibility API does it expose?
The Team Foundation Server component model for modifying both the Process Template and creating plugins is built on to be entirely open(in many cases the entry points are defined in XML configuration files). In addition to the having this the development team and community is quite active in supplying samples of this:
This open platform has also enabled an ecosystem of add-ons like Teamlook, Teamprise, Teamplain, Teamword, TFSPermission Manager.
How does it integrate with other non-MS platforms?
Team Foundation Server uses Web Services for cross machine communication therefore the Team Foundation Server functionality can be made available to any computer. (see MSDN Team System Article on how to use these web services) This is exactly how companies likeTeamprise, Teamplain, have built their clients to run on non windows computers.
How does it integrate with other software (eg custom task management software etc)?
In addition to the integration methods mentioned above Team Foundation is also a popular platform for other software manufacturers to host themselves in. Examples of this is Borland with their Together and Caliber Products and Compuware Testing with DevPartner.
How does the version control compare to Perforce? Branching, merging, change lists etc?
Team Foundation Server supports all normally expected Source Control features such as branching, merging, exclusively locking, remote disconnected scenarios, labeling, searching on various properties high fidelity reporting (how much code churn per person per project per iteration etc) plus a couple of newer paradigms like shelving and optimization for things like branching scenarios (many version control systems do a full copy for branches). I would have some performance comparisons but most systems don’t allow this.
Automated build system?
Yes Team Foundation Server includes an Automated Build System. This system is based on MSBUILD and offers the additional functionality of automatically running tests, profiling, code analysis, verifying policies, collating the changesets and workitems for reporting.
Any support for distributed build tools? Eg integrating our custom data build tools into the system throughout a network?
MSbuild was written to be extensible and integrate with existing tools through easy to use XML configuration files. Many of the commercial build utilities are already using and/or integrated with MSBuild –such as Cruisecontrol.net. In addition to making these actions part of the build script I have found the generic tests set to run as part of the build to do just as good a job with a rich user interface and support for managing/filtering etc.
Documentation support – eg integrating documentation with code check-ins etc?
This would typically be done through an entry to a work item (to be either associated or resolved) on time of check in and linked with this work item.
The links to the documentation can exist in a couple of ways.
-Checked in as Files (ie doc, HTML etc) Team Foundation Server makes it trivial to link all object checked in (as well as other workitems.)
-Process guidance files that exist on the Windows Sharepoint Site – Again making it easy for linking.
-External files once again to linked in a Workitem entry.
Does it send data compressed over the network?
Team Foundation uses Web Services for cross machine communication and by default automatically configures IIS use Compression.
Working from home / remote location?
Since cross machine communication is accomplished through web services remote access is vastly simplified.
Working offline? If the server is offline?
Yes, you need to change the file property to offline via a command utility called TFPT and save changes your local workspace. Any subsequent check-in does a get latest which would resolve if there are conflicts to be merged.