历史记录命令 (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 映射到工作区中的主文件夹。

获取单个文件的历史记录

以下示例显示对 历史记录 窗口中 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(包括子文件夹中的项)在命令提示符窗口中所做的最近五项更改:

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 和更早版本获取历史记录

以下示例显示在命令提示符窗口中对 SolutionA中的所有项所做的更改,包括子文件夹中、版本 30 及更早版本中的项:

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 和更早版本获取历史记录

以下示例显示对 SolutionA(包括子文件夹中的项)在命令提示符窗口中的 4/23 或更早版本所做的更改:

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

从一系列日期获取历史记录

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

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 

获取详细历史记录

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

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 History 窗口中 SolutionA 文件夹的历史记录,这使你可以浏览对文件夹的早期更改。 例如,如果对文件夹的最新更改是重命名,则可以展开更改集以查看重命名之前发生的更改。

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

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

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