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]

参数

参数

参数

说明

<sourcePath>

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

<targetPath>

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

<filter>

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

<TeamProjectCollectionUrl>

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

<username>

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

选项

选项

说明

/recursive

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

/noprompt

自选。 运行 tf folderdiff,而不在 Visual Studio 文件夹差异 窗口中显示输出。 命令提示符窗口改为显示输出。

/filter

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

/filterLocalPathsOnly

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

/view

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

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

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

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

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

默认值为 different,sourceOnly,targetOnly

/collection

指定项目集合。

/login

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

言论

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

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

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

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

文件和文件夹筛选器

筛选器是名称掩码的有序列表,用于匹配要比较的文件和文件夹的名称。 掩码可以包含问号 ? 通配符来完全匹配一个字符,星号 * 通配符来匹配零个或多个字符。

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

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

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

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

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

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

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

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

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

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

下表列出了筛选器示例。

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

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

例子

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

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

后续步骤