[Mono-list] [ANN] OpenTF 0.6.0 Release - CruiseControl, Irc Bot, New Cmds and Bugfixes

joel reed joelwreed at gmail.com
Mon Feb 4 12:50:54 EST 2008

Version 0.6 of open source Team Foundation for Mono is now available at

This is a development update with a new IRC changeset notification bot,
support for CruiseControl (an open source continuous build framework),
a monodevelop plugin for browsing TFS servers, several new commands
("shelve", "rollback", and "merges"), numerous API and usability
enhancements, and many bugfixes.

A detailed changelog can be found below.

MonoDevelop Plugin Screenshot:

TfsBot Documentation:

To learn more about many of the unique features found in OpenTF see:

Example invocations of the opentf client can be found here:

Enhancements include:

# TFSBOT: add new IRC commit notification daemon.

# add alpha-quality MonoDevelop addin, with debian package

# CRUISECONTROL: add support for date range queries to the history
command, e.g. -version:"D2006-10-01T01:01:01Z~D2006-12-13T20:00:00Z"

# CRUISECONTROL: add -noprompt option

# CRUISECONTROL: add support for username at domain -login syntax

# implement "tf shelve <name> <path>" to create new shelvesets

# implement "tf shelve /delete <name>" for deleting shelvesets

# implement "tf merges <src> <dest>" for listing merge points

# implement "tf diff /ignorespace" option

# implement "tf rollback <changeset>" for undoing a changeset.
NOTE: only useful if no one else has changed the file since then.

# add Get.ChangesetMtimes setting: By enabling this option,
the TF will set the modification time of any file subsequently fetched
to the date of the last changeset in which the file was modified.
Warning: this mode of operation can significantly slow down "tf get".

# add Get.DefaultToCwd setting: By enabling this option, the TF
client will look for updates starting with the current working folder
instead of pulling updates from all registered working folders.

# add Workspace.Default setting: If the TF client cannot determine the
active workspace, first from the "/workspace:" option, and second the
workspace cache, then it will use the Workspace.Default setting if non-null.

API Enhancements

# Microsoft.TeamFoundation.Common: Artifact, ArtifactId, ILinking
LinkFilter, LinkingUtilities, ServiceInterfaces

# Microsoft.TeamFoundation.VersionControl.Client: ShelvingOptions,

Bugfixes include:

# tf history with stopAfter > 256 shouldn't emit duplicate entries
(thanks to dion.olsthoorn for the report & fix)

# tf online <path> shouldn't croak if <path> is an add awaiting its
first checkin

# tf undo <paths> shouldn't undo all local changes

# When parsing changeset and shelveset datetimes don't drop the time portion

# Insert trailing tabs after filenames (a/b) in diffs to help diffutils
grok filenames with spaces

# Make sure tf ls-files <paths> is not passed a filename

# Set proper checkin time (by passing 0, not DateTime.Now - doh!)

# Fix tf ls-files /others breakage on windows for subdirectories

# Update local workspace cache when "tf workspaces" command called.

# Fix issue #8 "tf config expects ~/.tf/ to already exist"

# Teach tf that diffing binary files should print short "Binary files $1
and $2 differ" message

# Teach status command how to deal with locked files

# Teach tf branches command about server paths

# Don't clobber workspace info cache when there are >1 TFS server

# Update build for monodevelop 0.18.1 changes

What is Team Foundation / Team System?
Team Foundation is a 'collection of collaborative technologies that
support a team effort to deliver a product' from Microsoft that
includes bug tracking, source control, and other capabilities.'

Team Foundation powers Microsoft's CodePlex site and is used in many
corporate environments.

Team Foundation for Mono provides the TF client for accessing
Team Foundation Servers as well as the Microsoft.TeamFoundation.*
assemblies related to Version Control.

An example of accessing CodePlex to pull the latest version of
the "Turtle" project is below.

CodePlex Example Usage
In the commands below,
    UID = your codeplex user name
    PWD = your codeplex password
    MACHINENAME = your machine name (or any other random name)

First create a workspace:

   tf /server:https://tfs01.codeplex.com /login:snd\\UID,PWD
   workspace /new "MACHINENAME;UID"

Then map the "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

Then you could review the history, review a changeset, then look
at the diff of the changeset. Note: the examples below assume
the tf client "Credentials.Save" option was enabled.

   cd ~/Source/turtle
   tf history /recursive .
   tf changeset 340
   tf diff C340

More examples can be found in the docs/examples/ folder.

Source and Packages
Deb packages, Win32 packages, RPM packages, and source tarball available

Additionally, a git clone of the source tree can be made with:

     git clone git://repo.or.cz/tfs.git

This is where most development happens.

SVN users can check out the semi-regularly updated project source code at:

     svn checkout http://opentf.googlecode.com/svn/trunk/ opentf

Project Site
There is a Google Code Project Site for opentf, the URL is:



Joel Reed
Manager, Leadership Software Engineering
Development Dimensions International, Inc. (DDI)
1225 Washington Pike
Bridgeville, PA 15017
joel.reed at ddiworld.com

More information about the Mono-list mailing list