Content deleted Content added
m →Source control: Grammar |
|||
Line 12:
===Source control===
Team Foundation Server provides a [[source control]] repository, called ''Team Foundation Version Control'' (TFVC). Unlike Microsoft's previous source control offering, [[Visual SourceSafe]] (VSS), which relied on a file-based storage mechanism, Team Foundation source control stores all code, as well as a record of all changes and current check-outs in a SQL Server database. It supports features such as multiple simultaneous check-outs, conflict resolution, shelving and unshelving (shelving is a way to save a set of pending changes without committing them to source control, while still making them available to other users), [[Branching_%28software%29|branching]] and merging, and the ability to set security levels on any level of a source tree, alongside the most visible features of document versioning, locking and rollback. The source control mechanism integrates with Team System's work items as well; when a check-in (termed "changeset") occurs, a developer can choose to have their code associated with one or more specific work items, to indicate what the check-in works towards solving specific issues. TFS administrators can enforce check-in policies that require Code Analysis requirements to have passed, as well as to enforce the association of check-ins with work items, or update the state of associated work items (like flagging a bug as "fixed" when checking in code that has the bug fixed). Individual versions of files can be assigned labels, and all files with the same label forms a release group. Unlike VSS, TFS source control repository does not
TFVC supports [[Branching_%28software%29|branching]] at entire source code level as well as individual files and directory levels as well, with each branch being maintained individually. Multiple branches can be merged together, with the in built conflict resolution algorithm merging the changes between two branches of the same file where it can automatically reconcile the differences or flagging them for manual inspection if it cannot. Merge can be performed at "changeset" level as well, instead of the branch level. A successful merge is automatically checked out in the souce control repository.
|