Team Foundation is a "collection of collaborative technologies that support a team effort to deliver a product." It includes bug tracking, source control, and other features (*).
For example, Microsoft's CodePlex site (http://codeplex.com/) uses a Team Foundation Server for the source control backend.
For instructions on how to build and install this software, see the file INSTALL.
Microsoft.TeamFoundation Microsoft.TeamFoundation.Common Microsoft.TeamFoundation.Client Microsoft.TeamFoundation.VersionControl.Client Microsoft.TeamFoundation.VersionControl.Common Microsoft.TeamFoundation.WorkItemTracking.Client
An in progress implementation of the Team Foundation client, tf.exe, can be found in tools/tf/. If found, it will make use of libmagic to compute file permissions, as TF servers do not track/store permissions.
Documentation on the tool can be found on msdn at: http://msdn2.microsoft.com/en-us/cc31bk2e(VS.80).aspx
Supported Commands: add, branches, changeset, checkin, checkout, commit, config, delete, diff, dir, edit, explore, get, help, history, label, labels, lock, ls-files, move, online, permission, properties, rename, shelvesets, show, status, treeclean, undo, unlabel, version, view, workfold, workspace, and workspaces
You can track a repository using the following commands:
tf /server: /login:\, workspace /new ";"; tf /server: /login:\, workfold "$/" /usr/local/src/somedir
Then as often as you like run: tf /server: /login:\, /recursive get /usr/local/src/somedir /workspace:someworkspace
Most of the unit tests require a working TeamFoundation server. Currently, the unit tests use the following environment variables to configure which server, user account, password, project, etc. to use for testing purposes.
export TFS_URL=<url to server, eg. http://192.168.0.1:8080/>; export TFS_USERNAME=; export TFS_DOMAIN=; export TFS_PASSWORD=; export TFS_PROJECT=<a top-level project name, eg. MyProject>;
Here's the list of available TFS web services, as noted by a post at http://converttostring.com/archive/2007/03/01/359.aspx
/Services/v1.0/AuthorizationService.asmx /Services/v1.0/CommonStructureService.asmx /Services/v1.0/EventService.asmx /Services/v1.0/GroupSecurityService.asmx /Services/v1.0/ProjectMaintenance.asmx /Services/v1.0/ProcessTemplate.asmx /Services/v1.0/Registration.asmx /Services/v1.0/ServerStatus.asmx
/Warehouse/v1.0/WarehouseController.asmx /Warehouse/v1.0/WarehouseController.asmx
/Build/v1.0/BuildStore.asmx /Build/v1.0/BuildController.asmx /Build/v1.0/Integration.asmx /Build/v1.0/Integration.asmx /Build/v1.0/Integration.asmx /Build/v1.0/PublishTestResultsBuildService.asmx
/WorkItemTracking/v1.0/ClientService.asmx /WorkItemTracking/v1.0/ConfigurationSettingsService.asmx /WorkItemTracking/v1.0/Integration.asmx /WorkItemTracking/v1.0/Integration.asmx /WorkItemTracking/v1.0/Integration.asmx /WorkItemTracking/v1.0/Integration.asmx
/VersionControl/v1.0/repository.asmx /VersionControl/v1.0/administration.asmx /VersionControl/v1.0/integration.asmx /VersionControl/v1.0/item.asmx /VersionControl/v1.0/upload.asmx
/Build/v1.0/PublishTestResultsBuildService.asmx /Build/v1.0/PublishTestResultsBuildService.asmx
For registered developers, CodePlex is a publicly accessible example of a Team Foundation server used to host open source projects. Here's some examples of how to use the TF tool to access CodePlex hosted source code.
In the commands below,
UID = your codeplex user name PWD = your codeplex password MACHINENAME = your machine name (or any other random name)
Note: "snd" is the domain name I got with my signon. Not sure if this is the same for everyone or not.
First create a workspace:
tf /server:https://tfs01.codeplex.com /login:snd\UID,PWD workspace /new "MACHINENAME;UID"
Then map "Turtle" project to a local folder:
tf /server:https://tfs01.codeplex.com /login:snd\UID,PWD workfold "$/Turtle" ~/Source/turtle
Then pull the files:
tf /server:https://tfs01.codeplex.com /login:snd\UID,PWD get ~/Source/turtle /recursive
Now, to edit the "License.txt" file:
cd ~/Source/turtle tf edit License.txt
This makes the file writable. To see what you have checked out:
tf status
To check License.txt back in:
tf checkin /comment:"My comment" License.txt
This makes the file read-only again. You don't have to specify License.txt. If you don't specify a filename or filenames, it checks in everything you have checked out.
Then you could review the history, review a changeset, then look at the diff of the changeset. Note: the examples below assume Credentials.Save is on.
cd ~/Source/turtle tf history /recursive . tf changeset 340 tf diff C340
Buck Hodges has written numerous examples of using the TFS API. You can find a list of these samples here:
http://blogs.msdn.com/buckh/archive/2006/08/12/tfs_api_links.aspx
The following examples have been compiled and tested against TF for Mono:
http://blogs.msdn.com/buckh/archive/2005/10/26/485458.aspx http://blogs.msdn.com/buckh/archive/2006/04/06/project_diff.aspx (with 2 changes)
http://msdn2.microsoft.com/en-us/library/bb130146(VS.80).aspx http://msdn2.microsoft.com/en-us/teamsystem/default.aspx http://msdn2.microsoft.com/en-us/cc31bk2e(VS.80).aspx
http://groups.google.com/group/opentf
Members may post messages to: opentf@googlegroups.com