history 命令(Team Foundation 版本控制)

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Team Foundation 版本控制 (TFVC) tf history 命令显示一个或多个文件或文件夹的修订历史记录。 命令数据显示在 Visual Studio“历史记录”窗口中或命令提示符处(如果指定了 /noprompt 选项)。

可使用 Visual Studio 获取修订历史记录。 有关详细信息,请参阅获取项的历史记录

先决条件

请参阅默认 TFVC 权限

语法

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]

参数设置

参数

说明

/collection:<TeamProjectCollectionUrl>

指定包含项的项目集合的 URL。 例如:http://myserver:8080/tfs/DefaultCollection

默认情况下,假定项目集合是一个包含映射当前目录的工作区的集合。

/format

指定在指定 /noprompt 选项时要显示多少有关每个变更集的详细信息:

  • Brief(默认值):显示有关每个变更集的一个行,包括:ID 号、所做的更改、作出更改的用户、日期以及评论。 某些数据可能会被截断。

  • Detailed:显示每个变更集的完整说明。 除以上信息外,此选项还显示额外的数据(例如,日期与时间、更改的项、签入说明和签入策略警告)。

/itemmode

不能将此选项与 /slotmode 选项一起使用。 有关详细信息,请参阅 Matt Mitrik:更改为 TFS 2010 版本控制中的槽模式

<itemspec>

指定显示其历史记录的项目。 有关语法,请参阅使用 Team Foundation 版本控制命令

/noprompt

禁止显示窗口和对话框(例如,“历史记录”窗口),并将输出数据重定向到命令提示符。 请参阅使用 Team Foundation 版本控制命令

不显示在对项进行移动、重命名、分支或合并操作之前所做的修订的历史记录。

/login:<username>[,<password>]

指定用于运行该命令的用户帐户。 请参阅使用 Team Foundation 版本控制命令

/recursive

以递归方式检索有关指定目录和任何子目录中的项的历史记录数据。

/slotmode

不能将此选项与 /itemmode 选项一起使用。 有关详细信息,请参阅 Matt Mitrik:更改为 TFS 2010 版本控制中的槽模式

/sort

按以下任一顺序对一个或多个文件或文件夹的修订历史记录进行排序:

  • Ascending:从最旧到最新版本。

  • Descending(默认值):从最新到最旧版本。

必须将 /noprompt 选项与此选项一起使用。

/stopafter:<number>

指定要在历史记录数据中显示的变更集的最大数目。

/user:<username>

筛选历史记录数据以显示指定用户所做的更改。 星号 (*) 符号包括有关来自所有用户的更改的数据(默认值)。

/version:<versionspec>

使用范围 ~ 语法指定最大版本或最小和最大版本。 默认值为 /version:W(工作区中的版本)。

不能将此选项与 /slotmode 选项一起使用。

有关语法,请参阅使用 Team Foundation 版本控制命令

注解

  • 获取有关变更集的更多详细信息(例如,需要查看关联的工作项):

    • 在 Visual Studio“历史记录”窗口中,双击或单击变更集,然后选择“变更集详细信息”。

    • 在命令提示符下,使用 Changeset 命令

  • /collection 选项对于从计算机和用户帐户(不具有映射到包含项的项目集合的工作区)运行该命令很有用。

示例

以下示例假定 c:\code\SiteApp\Main 映射到工作区中的 main 文件夹。

获取单个文件的历史记录

以下示例在“历史记录”窗口中显示对 program2.cs 所做的所有更改。

c:\code\SiteApp\Main\SolutionA\Project1>tf history program2.cs

以下示例在命令提示符窗口中显示对 program2.cs 所做的所有更改。

c:\code\SiteApp\Main\SolutionA\Project1>tf history program2.cs /noprompt

输出:

Changeset Change                     User              Date       Comment
--------- -------------------------- ----------------- ---------- -------- 
29        edit                       Jamal Hartnett    4/23/2012  Fix bug
20        add                        Raisa Pokrovskaya 4/12/2012  Add new  

获取文件夹中所有项的历史记录

以下示例在“历史记录”窗口中显示对 SolutionA 中的所有项(包括子文件夹中的项)所做的所有更改。

c:\code\SiteApp\Main\SolutionA>tf history * /recursive

获取对文件夹中的所有项所做的最后五次更改的历史记录

以下示例在命令提示符窗口中显示对 SolutionA 中的项(包括子文件夹中的项)做出的最近 5 次更改:

c:\code\SiteApp\Main\SolutionA>tf history * /noprompt /recursive /stopafter:5

输出:

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

从版本 x 或更早版本中获取历史记录

以下示例在命令提示符窗口中显示对版本为 30 和之前的版本的 SolutionA 中的所有项(包括子文件夹中的项)做出的更改:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:30

输出:

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

从日期 D 或更早日期中获取历史记录

以下示例在命令提示符窗口中显示在 2012 年 4 月 23 日或更早时间对 SolutionA 中的所有项(包括子文件夹中的项)所做的更改:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/24/2012

或:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D2012-04-24T12:00

输出:

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

获取某日期范围的历史记录

以下示例在命令提示符窗口中显示在 2012 年 4 月 12 日到 2012 年 4 月 23 日期间对 SolutionA 中的所有项(包括子文件夹中的项)所做的更改:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2012~D4/24/2012

输出:

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 

获取详细历史记录

以下示例在命令提示符窗口中显示在 2012 年 4 月 12 日到 2012 年 4 月 23 日期间对 SolutionA 中的所有项(包括子文件夹中的项)所做的更改的详细信息:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2012~D4/24/2012 /format:detailed

输出:

-------------------------------------------------------------------------------
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.

获取文件夹的非递归历史记录

以下示例在 Visual Studio“历史记录”窗口中显示 SolutionA 文件夹的历史记录,可通过该窗口浏览之前对该文件夹所做的更改。 例如,如果对该文件夹的最新更改是重命名,则可以展开变更集以查看在重命名前发生的更改。

c:\code\SiteApp\Main\SolutionA>tf history .

以下示例在命令提示符窗口中显示对 SolutionA 文件夹所做的最新更改。

c:\code\SiteApp\Main\SolutionA>tf history . /noprompt