By Eugene Zakhareyev
August 2008 (original version published in March '08 issue of TFS Times
The article discusses some typical usage scenarios for Attrice Team Foundation Sidekicks
First version of Team Foundation Sidekicks application was released in April 2006,
right after the production release of Team Foundation Server 2005. The first version
included only one application, Workspace Sidekick that provided Graphic User Interface
for common workspace-related administrative tasks. As of today, the stand-alone
application consists of Workspace, Status, History, Label, Shelveset, Permission
and Code Review Sidekicks; additionally, there is Visual Studio package with the
same name that provides build type editing and item search functionality for Team
Foundation Server. Latest version of the application is compatible with and provides
same functionality for Team Foundation Server 2005 and 2008. Since the first release,
the goal of the application was to provide GUI for common administrative tasks that
may be performed only from command-line (using command-line tf client) or not available.
In that article I shall try to describe some common scenarios in which Team Foundation
Sidekicks may be helpful.
Single application with many faces
All Sidekicks are activated from the same stand-alone application that allows to
login to Team Foundation Server either with currently logged-in user credentials
or with custom user name:
For all Sidekicks the screen consists of two panes – search pane and details pane.
Search pane provides for search parameters input and for display of the search results,
whereas the details pane displays Sidekick-specific details for selected search
Thus, in Workspace Sidekick using the search pane (see 1 below) one may specify
workspace search criteria, such as workstation name, owner name and last access
date range; after specifying search parameters and performing search, user may select
workspace from the list of results (see 2) and view its details (see 3) or additional
properties (such as workspace mappings – see 4).
Two other important features that included in all Sidekick applications are user
name handling and list export capability. Unlike Microsoft TF clients, Sidekicks
work with user display names. And also unlike Source Control Explorer, almost every
tabular data list displayed in Sidekicks may be easily saved to CSV file for whatever
As its name implies, Workspace Sidekick mainly deals with Team Foundation Server
workspaces. Most of functionality provided by this application is accessibly only
in command-line client; and dealing with many workspaces (especially from several
users) can be very inconvenient through command-line. The application allows searching
workspaces and reviewing of the properties and mappings for selected workspace;
I would like to highlight the workspace duplication feature:
Using that feature, you can copy however complicated set of workspace mappings from
existing workspace to any workstation; only parameters required are selected source
workspace and target workstation and owner. Typical scenarios that this application
can help you with are:
- Removing old workspaces (those that were not accessed lately) with the purpose of
- Removing the workspaces of the user that has left the company
- Review the workspaces’ mappings for multiple users (f. e., with the view of having
standard development environment across team)
- Duplication of same workspace definitions for multiple users on multiple workstations
Who’s locked that @##$%# file?
When team of developers works on a project, situations when there are “stray” check-outs
or files locked are fairly typical. Status Sidekick’s objective is to view pending
changes across source control repository; in case the changes should be rolled back,
the application allows performing administrative undo/unlock of the changes by other
users. In TFS 2005, those features are available only through command-line interfaces;
for TFS 2008 Microsoft Power Tools provide item search by name/status, integrated
into Visual Studio, with additional features such as check in of found pending changes.
Note how the search can be limited by using user display name and/or the date of
change; the tree view of the search results allows easy navigation to specific subfolders.
Other common usage scenarios for Status Sidekick include
- Review of all user’s pending changes across workspaces on different workstations
- Review multiple users’ pending changes (with the purpose of getting rid of outdated
- Undo locks set by other users
- Undo pending changes (including edits) by other users
Knowledge of history
The ability to access historical data is one of the major features of any source
control systems. While Source Control Explorer does a decent job in exposing changeset-based
history, certain cross-sections of the information available are lacking – and that’s
where History Sidekick fits in. History Sidekick is probably most complex of all
Sidekicks applications. Its objective is to provide all possible views of the history
data for source control item (file or folder alike). Most of the views are available
only through command-line client with some of the views not available anywhere else.
The repository may be navigated either using tree view or using Search item dialog.
For selected item in the repository, the information available encompasses item
changesets history, item properties (including current pending changes), item branching
information (including properties for every branch), directional [to item/from item]
merges history, potential merge candidates from item to branch selected by user
and item labels history.
Typical usage scenarios for History Sidekick include
- Review item history for multiple items
- Review folders branch information (including deleted branches and detailed properties
- Review merges to/from selected file while comparing between revisions
- Review folder merge candidates before merges to specific branch
- Review item labels and labeled revisions
I have a label and now what?
While labeling items and accessing the labels in TFS are relatively easy, reviewing
the labeled items and especially comparing the historical labels is a missing piece;
that’s where Label Sidekick may be used for labels’ contents review and comparison.
It provides more convenient access to the labeled content than Visual Studio Source
Control Explorer/command-line client; such features as labels content comparison
are exclusive to the tool.
The labels may be searched by name, owner name, project and last change date. The
labeled contents view includes labeled items (with the ability to compare revision
with the latest), labeled changesets or labeled work items.
Labels may be compared between themselves or with the latest version; comparison
dialog also allows for revisions comparison.
Typical usage of Labels Sidekick may be as follows:
- Review the contents of the specific label (including inferred contents such as changesets
and work items)
- Compare labeled artifacts (items, changesets and work items) between two labels
or between label and the latest version (only items are available
- Remove multiple labels
Making shelvesets accessible
When you have to review shelvesets of several people, you start wishing for more
streamlined interface than TFS has to offer. And Shelveset Sidekick is exactly that
– a convenient GUI for reviewing shelvesets and their contents. The application
emphasizes ease of search and access to the shelved files (including comparison,
saving or review of the shelved revisions).
The shelvesets can be searched by name, owner or change date range; after shelveset
is selected in the search results, its properties and shelved changes can be reviewed.
Shelveset Sidekick may be applied in the following scenarios:
- Review any user’s shelvesets and shelved item revisions
- Remove (multiple) old shelvesets from the database
Reviewing the changes
No more plodding through the Changeset details dialogs for the week worth of checked
in changes - Code Review Sidekick provides easy to use and convenient UI for reviewing
set of changes.
One selects set of changesets using standard Find Changeset dialog; the items included
in the changesets selected are shown grouped by the item path and can be easily
compared between them or with previous revision. The ability to select changes through
work items is planned in the next version of the tool.
The application answers the following scenarios:
- Review changes performed on related files by several developers or to estimate
- Review changes performed in certain period of time (for example, in order to estimate
the impact on certain modules in the project)
- Review changes associated to specific work items
Why John is not allowed to do this?
While TFS provides convenient user interface for setting up permissions, discovering
why certain user is granted (or denied) certain permission is not an easy task.
Using Permission Sidekick, one may view effective permissions for all available
categories: Global Server permissions, Team Project permissions, Area permissions
and Source Control permissions.
In addition to viewing effective permissions, you can also see why specific permission
is granted or denied (i.e. what permission assignments cause the permission to be
And now together with Visual Studio
Installation package for the Sidekicks application also includes Visual Studio Integration
Package that makes available in Visual Studio the following features
- Code Review Sidekick is integrated into Source Control Explorer
- All Sidekicks are available through “Tools->Team Foundation Sidekicks” menu
- Search Items by name is integrated into Source Control Explorer
- Check out, Check In and Undo menus are integrated into Team Explorer for build types
- Dynamic history update is available upon changing selection in Source Control Explorer
In this article I tried to cover most functions provided by Team Foundation Sidekicks.
The application is freely available and is provided as a service to the community;
if you discover a bug or have other feedback, please let us know. If you want to
be "in the know", Sidekicks blog is updated with info on how-to, bug fixes and release
About the author
Eugene Zakhareyev is a principal consultant at Attrice Corporation in San Jose,
California. His primary focus is SCM and development methodologies using Visual
Studio Team System. He may be contacted through his email.