History command (Team Foundation Version Control)
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
The Team Foundation Version Control (TFVC) tf history
command displays the revision history of one or more files or folders. The command data is displayed in either the History window in Visual Studio, or if the /noprompt
option is specified, at the command prompt.
You can also use Visual Studio to get revision history. For more information, see Get the history of an item.
Prerequisites
Syntax
tf hist[ory] itemspec [/version:versionspec]
[/stopafter:number] [/recursive] [/user:username]
[/format:(brief|detailed)] [/slotmode] [/itemmode] [/noprompt]
[/login:username,[password]] [/sort:ascending,descending]
[/collection:TeamProjectCollectionUrl]
Parameters
Parameter
Description
/collection:<TeamProjectCollectionUrl>
Specifies the URL of the project collection that contains the items. For example: http://myserver:8080/tfs/DefaultCollection
.
By default, the project collection is presumed to be the one that contains the workspace that maps the current directory.
/format
Specifies how much detail to display about each changeset when the /noprompt
option is specified:
Brief
(default): Displays one line about each changeset that includes: ID number, changes made, user who made the changes, date, and comment. Some of the data may be truncated.Detailed
: Displays a full description of each changeset. In addition to the preceding information, this option displays more data such as date with time, items changed, check-in notes, and check-in policy warnings.
/itemmode
You can't combine this option with the /slotmode
option. For more information, see Matt Mitrik: Changing to Slot Mode in TFS 2010 Version Control.
<itemspec>
Specifies the items for which to display history. For syntax, see Use Team Foundation version control commands.
/noprompt
Suppresses the display of windows and dialog boxes, such as the History window, and redirects output data to the command prompt. See Use Team Foundation version control commands.
Doesn't display the history of revisions that occurred before an item was moved, renamed, branched, or merged.
/login:<username>[,<password>]
Specifies the user account to run the command. See Use Team Foundation version control commands.
/recursive
Recursively retrieves historical data on items in the specified directory and any subdirectories.
/slotmode
You can't combine this option with the /itemmode
option. For more information, see Matt Mitrik: Changing to Slot Mode in TFS 2010 Version Control.
/sort
Sorts the revision history for one or more files or folders in either of the following orders:
Ascending
: From the oldest to the most recent revision.Descending
(default): From the most recent to the oldest revision.
You must use the /noprompt
option with this option.
/stopafter:<number>
Specifies the maximum number of changesets to display in the history data.
/user:<username>
Filters the historical data to show changes made by the specified user. An asterisk (*) symbol includes data on changes from all users, the default.
/version:<versionspec>
Specifies either the maximum version, or the minimum and maximum versions by using the range ~
syntax. The default is /version:W
, the version in the workspace.
You can't combine this option with the /slotmode
option.
For syntax, see Use Team Foundation version control commands.
Remarks
To get more detailed information about a changeset, for example to see associated work items:
In the Visual Studio History window, double-click or right-click the changeset and choose Changeset Details.
From the command prompt, use the Changeset command.
The
/collection
option is useful for running this command from a machine and user account that doesn't have a workspace mapped to the project collection that contains the items.
Examples
The following examples assume that c:\code\SiteApp\Main maps to the main folder in the workspace.
Get history of a single file
The following example displays all changes made to program2.cs in the History window.
c:\code\SiteApp\Main\SolutionA\Project1>tf history program2.cs
The following example displays all changes made to program2.cs in the command prompt window.
c:\code\SiteApp\Main\SolutionA\Project1>tf history program2.cs /noprompt
Output:
Changeset Change User Date Comment
--------- -------------------------- ----------------- ---------- --------
29 edit Jamal Hartnett 4/23/2012 Fix bug
20 add Raisa Pokrovskaya 4/12/2012 Add new
Get history of all items in a folder
The following example displays all changes made to all items in SolutionA, including those in subfolders, in the History window.
c:\code\SiteApp\Main\SolutionA>tf history * /recursive
Get history of the last five changes to all items in a folder
The following example displays the latest five changes made to items in SolutionA, including those in subfolders, in the command prompt window:
c:\code\SiteApp\Main\SolutionA>tf history * /noprompt /recursive /stopafter:5
Output:
Changeset User Date Comment
--------- ----------------- ---------- ----------------------------------------
31 Raisa Pokrovskaya 5/15/2012
30 Raisa Pokrovskaya 4/23/2012
29 Jamal Hartnett 4/23/2012 Fix bug in new method
20 Raisa Pokrovskaya 4/12/2012 Add new method, add program2.cs to Proje
15 Raisa Pokrovskaya 4/8/2012
Get history from version x and earlier
The following example displays changes made to all items in SolutionA, including those in subfolders, in version 30 and earlier, in the command prompt window:
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:30
Output:
Changeset User Date Comment
--------- ----------------- ---------- ----------------------------------------
30 Raisa Pokrovskaya 4/23/2012
29 Jamal Hartnett 4/23/2012 Fix bug in new method
20 Raisa Pokrovskaya 4/12/2012 Add new method, add program2.cs to
15 Raisa Pokrovskaya 4/8/2012
Get history from date D and earlier
The following examples display changes made to all items in SolutionA, including those in subfolders, on 4/23/12 or earlier, in the command prompt window:
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/24/2012
Or:
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D2012-04-24T12:00
Output:
Changeset User Date Comment
--------- ----------------- ---------- ----------------------------------------
30 Raisa Pokrovskaya 4/23/2012
29 Jamal Hartnett 4/23/2012 Fix bug in new method
20 Raisa Pokrovskaya 4/12/2012 Add new method, add program2.cs to 15 Raisa Pokrovskaya 4/8/2012
Get history from a range of dates
The following example displays changes made to all items in SolutionA, including those in subfolders, between 4/12/2012 and 4/23/2012, in the command prompt window:
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2012~D4/24/2012
Output:
Changeset User Date Comment
--------- ----------------- ---------- ----------------------------------------
30 Raisa Pokrovskaya 4/23/2012
29 Jamal Hartnett 4/23/2012 Fix bug in new method
20 Raisa Pokrovskaya 4/12/2012 Add new method, add program2.cs to
Get detailed history
The following example displays details about changes made to all items in SolutionA, including those in subfolders, between 4/12/2012 and 4/23/2012, in the command prompt window:
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2012~D4/24/2012 /format:detailed
Output:
-------------------------------------------------------------------------------
Changeset: 30
User: Raisa Pokrovskaya (Fabrikam)
Date: Monday, April 23, 2012 1:23:05 PM
Comment:
Much better name for this file
Items:
rename $/SiteApp/Main/SolutionA/Project1/programBig.cs
delete, source rename $/SiteApp/Main/SolutionA/Project1/program3.cs;X15
-------------------------------------------------------------------------------
Changeset: 29
User: Raisa Pokrovskaya (Fabrikam)
Date: Monday, April 23, 2012 1:03:13 PM
Comment:
Fix bug in new method
Items:
edit $/SiteApp/Main/SolutionA/Project1/program1.cs
edit $/SiteApp/Main/SolutionA/Project1/program2.cs
-------------------------------------------------------------------------------
Changeset: 20
User: Raisa Pokrovskaya (Fabrikam)
Date: Thursday, April 12, 2012 5:09:35 PM
Comment:
Add new method, add program2.cs to Project1
Items:
add $/SiteApp/Main/SolutionA/Project1/program2.cs
Check-in Notes:
Documentation:
An important new part of our codebase.
Policy Warnings:
Override Reason:
Jamal agrees with me that we can bypass for this check-in.
Messages:
The Code Analysis Policy requires files to be checked in through Visual
Studio with an open solution.
Get the non-recursive history of a folder
The following example displays the history of the SolutionA folder in the Visual Studio History window, which enables you to explore earlier changes to the folder. For example, if the most recent change to the folder was a rename, you can expand the changeset to see changes that occurred before the rename.
c:\code\SiteApp\Main\SolutionA>tf history .
The following example displays the most recent change to the SolutionA folder in the command prompt window.
c:\code\SiteApp\Main\SolutionA>tf history . /noprompt
Related articles
- For information about how to use the History window, see Get the history of an item.
- For more information about changesets, see Find and view changesets.
- Also see View and manage past versions.