The TFS Productivity Tools project was designed to provide TFS administrators with helper extensions for Source Control or Work Item Tracking tasks.
For running these extensions the installation of Visual Studio Professional is required.
The extensions was tested with Visual Studio 2012 only.
Button name | Runs from Window | Tool description |
---|---|---|
* Change Work Item link types | Team Explorer | Modify Work Item link types. |
* Destroy Work Items | Query Results | Completely destroy Work Items. |
* Export to Microsoft Word | Team Explorer | Export Work Items to Microsoft Word document. |
* Merge Work Items, Merge Changesets |
Source Control Explorer, Query Results | Provide workaround for several merge features not implemented by TFS: 1.TFS merge leads to bulk check-in operation that puts files from all previous changesets into one big merge changeset. 2.TFS allows only for consecutive changesets being cherry-peeked by merge operation. 3.TFS doesn’t allow choosing changesets for cherry-peek merge by selecting work items. 4.TFS merge dialog doesn’t have “force” and “baseless” options. |
* Emulate Get-Preview | Source Control Explorer | Emulate commandline task and write outputs to Output window: tf.exe get /recursive /preview "itemspec" |
* Update Modification Time, Update Changeset Time | Source Control Explorer, History | 1. Update modification time for checked-out files to their latest check-in time. 2. Directly modify changeset's check-in time in TFS database. |
Link Changesets to Work Item, Copy Changeset comments | History, Query Results | 1. Link changesets to work items (many-to-many) 2. Copy changeset comment to link comment |
Show Revision history | Source Control Explorer | Show WPF graph tree of branches with mergable changesets |
* These features were written as a part of a job in Experis.
For installing anyone of the extensions double-click on VSIX file and follow the installer instructions.
This extension modifies link types between the Work Items returned from Work Item query.
To execute it select any query under Work Items node in Team Explorer window and click on "Change Query Link Types".
After that, in next dialog choose original and new wanted link types.
This extension completely destroys (not closes) Work Items returned from Work Item query.
To execute it select a number of Work Items in Query Results window and click on "Destroy Work Items".
This extension exports Work Items returned from Work Item query to Microsoft Word document in paragraph style. It uses MS Office Interop package and requires a local installation of Word.
To execute it select any query under Work Items node in Team Explorer window and click on "Export to Microsoft Word".
Extended Merge extension provides workaround for several merge features not implemented by TFS:
- TFS merge leads to bulk check-in operation that puts files from all previous changesets into one big merge changeset.
- TFS allows only for consecutive changesets being cherry-peeked by merge operation.
- TFS doesn’t allow choosing changesets for cherry-peek merge by selecting work items.
- TFS merge dialog doesn’t have “force” and “baseless” options.
The list of merge candidates can be obtained in two ways:
- From Source Control Explorer window.
In this case all history changesets for a specific server path are parsed.
- From Query Results window.
In this case all changesets, linked to the selected Work Items are parsed.
After initialization stage extension opens Visual Studio tool window pane with a grid that shows useful information about parsed changesets:
- Checked/unchecked status.
- Work item ID.
- Changeset ID.
- Changeset check-in date
- Changeset creator.
- The change types this changeset contains.
- Possible merge options
- None – merge is impossible (don’t mess with “discard” commandline option)
- Baseless – baseless merge
- Force – force merge
- Candidate – regular merge
- Merge source path (can be modified).
- Changeset comment field.
The Merge Target Location field contains the path to a folder or a branch in source control.
Merge types are calculated based on shared Merge Target Location path and an individual changeset Source Path.
Extension runs all actions from toolbar buttons (some of them are duplicated on grid context menu also).
Menu item name | Menu item description |
---|---|
Link to Work Items | When checking in merge results link new changesets to work items the same way as they were linked in original changesets. |
Normal Merge | Do regular merge based on merge candidates. |
Conservative Merge | Use “Conservative” merge option. It produces more merge conflicts. |
Refresh | Refill changeset merge types. |
Merge | Do merge. |
Resolve | Show merge conflicts. |
Changeset details | Show changeset details. |
Work Item details | Show Work Item details. |
Navigate to Server Path | Navigate to server path in Source Control Explorer. |
Edit Server Path | Edit server paths (one or multiple). |
Copy to Clipboard | Copy selected changeset details to clipboard. |
Mark All Items | Check all grid items. |
Unmark All Items | Uncheck all grid items. |
During merge operation merge conflicts can occur.
In this case click on OK button and resolve conflicts with standard TFS Resolve Conflicts dialog.
This extension emulates TFS commandline operation: tf.exe get /recursive /preview "itemspec"
To execute it select a path in Source Control Explorer window and click on "Emulate Get-Preview".
The results are print to Output window.
This extension consists from 2 parts:
- Updates modification time for checked-out files to their latest check-in time.
It is accessible from Source Control window & History window. - Directly modifies changeset's check-in time in TFS database.
It actually runs SQL statement:UPDATE tbl_Changeset SET CreationDate=’?’ WHERE ChangeSetId=‘?’
It is accessible from History window.
The ExtendedMerge uses a number of internal Microsoft classes. It can possibly lead to some tool malfunction in the next TFS versions:
Feature | Classes |
---|---|
Show merge progress dialog | Microsoft.TeamFoundation.VersionControl.Controls.ProgressMerge |
Show resolve conflicts dialog | Microsoft.TeamFoundation.VersionControl.Controls.DialogResolveConflicts |
Show WorkItem picker dialog | Microsoft.TeamFoundation.WorkItemTracking.Controls.WorkItemPickerDialog |
Extension packages used icons from GNOME project: http://art.gnome.org/themes/icon