Folderdiff 命令(Team Foundation 版本控制)

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

Visual Studio 2019 | Visual Studio 2022

使用 TFVC folderdiff 命令显示和比较两个服务器文件夹、服务器文件夹和本地文件夹或两个本地文件夹中的文件之间差异的视觉对象表示形式。

先决条件

若要使用 folderdiff 命令,必须将“读取”权限设置为“允许”。 有关详细信息,请参阅默认 TFVC 权限

语法

tf folderdiff [sourcePath] targetPath [/recursive] [/noprompt] [/collection:TeamProjectCollectionUrl] [/filter:filter] [/filterLocalPathsOnly] [/login:username,[password]] [/view:same,different,sourceOnly,targetOnly]

参数

参数

Argument

说明

<sourcePath>

比较操作中的本地或服务器源路径。 如果未提供此参数且 targetPath 是本地映射路径,则 sourcePath 是该参数映射到的服务器路径。

<targetPath>

比较操作中的本地或服务器目标路径。

<filter>

/filter 选项的包含和排除筛选器掩码的分号分隔列表。 默认值为 *,或包括全部。 有关筛选器和掩码的详细说明,请参阅注解

<TeamProjectCollectionUrl>

包含要显示和比较差异的文件的项目集合的 URL,例如 http://myserver:8080/tfs/DefaultCollection

<username>

/login 选项提供值。 你可将用户名值指定为 DOMAIN\usernameusername

选项

选项

说明

/recursive

可选。 以递归方式完全比较这两个文件夹。

/noprompt

可选。 如果 Visual Studio“文件夹差异”窗口中未显示输出,请运行 tf folderdiff。 命令提示符窗口改为显示输出。

/filter

可选。 指定包含和筛选器掩码的列表,这些掩码用于匹配要比较的文件和文件夹的名称。

/filterLocalPathsOnly

可选。 指定仅筛选本地路径,除非存在相应的服务器路径。

/view

可选。 使用以下值的逗号分隔列表指定要包含在输出中的信息:

  • same 显示源目录和目标目录中具有相同内容的文件。

  • different 显示源目录和目标目录中具有不同内容的文件。

  • sourceOnly 显示仅存在于源目录中的文件。

  • targetOnly 显示仅存在于目标目录中的文件。

默认为 different,sourceOnly,targetOnly

/collection

指定项目集合。

/login

指定用户名和密码,以便使用 Azure DevOps 对用户进行身份验证。

注解

如果指定了 /noprompt,命令提示符窗口将显示输出。 否则,Visual Studio“文件夹差异”窗口将显示输出。

当系统将本地映射文件夹与其映射到的服务器文件夹进行比较时,“文件夹差异”窗口中的输出包含挂起的更改列表。 此外,“文件夹差异”窗口中的输出将告知你本地文件夹是否包含最新副本。

命令提示符窗口中显示的输出列出了以下五个部分中文件夹中的所有文件:

  • 仅存在于服务器文件夹中的项。
  • 仅存在于本地文件夹中的项。
  • 具有不同内容的项。
  • 具有相同内容的项。 你必须使用 /view 选项指定 same 参数。
  • 总结。

文件和文件夹筛选器

筛选器是一个已排序的名称掩码列表,用于匹配要比较的文件和文件夹的名称。 掩码可以包含问号 ? 通配符和星号 * 通配符,前者用于准确匹配一个字符,后者用于匹配零个或多个字符。

你可以使用分号 ; 分隔筛选器中的掩码。 文件夹掩码必须以反斜杠 \ 结尾。 要指定排除掩码,请在掩码前缀上加上感叹号 !

筛选器通过使用以下规则应用于文件和文件夹名称:

  • 如果筛选器同时指定文件和文件夹掩码,文件和文件夹掩码将分为文件掩码列表和文件夹掩码列表。 文件掩码仅适用于文件名。 文件夹掩码仅适用于文件夹名称。

  • 若要匹配文件或文件夹名称,命令会按照指定的顺序将名称与筛选器中的每个掩码进行比较。 一旦名称与掩码匹配,就将该名称视为匹配项。

  • 如果筛选器中的文件掩码包含某个包含掩码,则将排除与任何文件掩码都不匹配的文件。

  • 如果筛选器中的文件掩码仅包含排除掩码,则将包含与任何文件掩码都不匹配的文件。

  • 如果筛选器中的文件夹掩码包含某个包含掩码,则将排除与任何文件夹掩码都不匹配的文件夹。

  • 如果筛选器中的文件夹掩码仅包含排除掩码,则将包含与任何文件夹掩码都不匹配的文件夹。

下表列出了筛选名称掩码示例。

名称掩码 说明
*.cs 与所有 C# 文件相匹配。
My*.bmp 与所有以“My”开头的位图文件相匹配。
!*.exe 排除所有可执行文件。
!objd\ 排除所有的 objd 文件夹。

下表列出了筛选示例。

Filter 说明
*.cs;!objd\;!obj\;!bin\ 匹配所有 C# 文件,但 objd、obj 或 bin 文件夹中的文件除外。
!*.resx;!*.ini;!resources\;!*junk*\ 排除所有 .resx 和 .ini 文件、资源文件夹中的所有文件以及文件夹名称中包含单词 junk 的任何文件夹中的所有文件。

有关如何使用 tf 命令行实用工具的详细信息,请参阅使用 Team Foundation 版本控制命令

示例

以下示例比较服务器文件夹和本地文件夹中的文件,以递归方式组织本地文件夹中的文件,并在命令提示符窗口中显示输出。

tf folderdiff $/<serverFolder> F:\<localFolder> /recursive /noprompt

后续步骤