Annotate (also known as blame) is now a power toy

Buck Hodges

[UPDATE 8/9/2007]  I fixed the broken link to power tools page. 

[UPDATE 9/8/2006]  TFPT is now available in its own small download:!  You no longer need to download the VS SDK.  You can find more information about the September ’06 release here.

One of the features that we had to cut for version 1 was annotate, which is also known as blame in Subversion.  We had hoped to provide a power toy that at least provided the basics, and the Visual Studio 2005 SDK – March 2006 CTP for v2 contains an updated tfpt.exe with support for annotate.

Written by Justin, a developer working primarily on the version control server, annotate downloads every version of a particular file and annotates the output with attributes showing the changeset, date, and user who last changed each line in the file.  The current implementation does not show deleted lines.

Most of the time, you will likely run tfpt annotate filename to bring up the viewer, but you can also specify /noprompt to get console output.  The optional version provides the ability to see changes up to the specified version.  Here is the help text.

C:Program FilesVisual Studio 2005 SDK2006.03VisualStudioTeamSystemIntegrationUtilitiesTeam Foundation Power Toys>tfpt annotate /?
tfpt annotate – Display line-by-line change information for a file

Displays the given version of a file along with information
on who modified the line last.

Usage: tfpt annotate [/noprompt] filespec[;versionspec]

 filespec               Server or local path of file to view history of.
 /noprompt              Prints interleaved output to console instead of GUI.

The annotate viewer is shown in a screenshot below.  By default, the content viewer displays only the changeset number.  You can use the View menu to display the user name and date, as I have.

When this screenshot was captured, I had selected the line that prints the output.  As a result, the changeset information on the left hand side shows some of the changeset information, including the comment.  If I had associated or resolved a work item when checking in, that work item would be displayed in the Work Items list.

Finally, the Edit menu gives you the ability to search and go to a particular line number.

This annotate implementation provides the basics, and it will likely whet your appetite for more.  While this power toy is not likely to get more features, we are certainly interested in your feedback for what you would like to see in the shipping product.



Leave a comment

Feedback usabilla icon