谢尔韦命令 (Team Foundation 版本控制)

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

Visual Studio 2019 |Visual Studio 2022

Team Foundation 版本控制(TFVC)shelve 命令存储一组挂起的更改,以及挂起的签入说明、注释和 Azure DevOps 服务器上的关联工作项列表,而无需实际签入这些更改。

先决条件

如果要使用 shelve 命令删除货架集、货架集所有者或 管理搁置更改 权限必须设置为 “允许”。 有关详细信息,请参阅 默认 TFVC 权限

语法

tf shelve  [/replace] [/comment:("comment"|@commentfile)] [shelvesetname] [/validate][/noprompt] [/login:username,[password]]
tf shelve [/move] [/replace] [/comment:("comment"|@commentfile)] 
[/recursive] [shelvesetname] itemspec [/validate] [/noprompt] [/login:username,[password]]
tf shelve /delete shelvesetname[;owner] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]

参数

参数

参数 说明
<commentfile> 指定应从中读取搁置集注释的文件的文件系统路径。
<comment> 指定搁置集的注释。
<itemspec> 标识要搁置的文件或文件夹。 默认情况下,如果未指定此参数,则当前工作区中的所有挂起更改都会搁置。 有关 Team Foundation 如何分析 itemspec 以确定哪些项在范围内的详细信息,请参阅 使用选项来修改命令函数的方式。
<shelvesetname> 指定可从 Azure DevOps 服务器检索货架集的名称。 可以指定 shelvesetnameowner的现有组合,但前提是还指定了 /replace

必须为此参数提供值。
<owner> 按用户名标识货架集的当前或预期所有者。 默认情况下,如果未指定货架集,则当前用户将分配货架集的所有权。
<username> /login 选项提供值。 可以将用户名值指定为 DOMAIN\usernameusername
<TeamProjectCollectionUrl> 包含要搁置的文件或文件夹的项目集合的 URL,例如 http://myserver:8080/tfs/DefaultCollection/

选项

选项 说明
/new 每个挂起更改的选定状态,如 Visual Studio 签入 对话框中所示,注释、关联的工作项、签入笔记和签入策略替代原因将作为挂起的更改存储在开发计算机上,直到签入。 /new 选项在签入之前清除此签入元数据。
/move 在搁置操作成功后,从工作区中删除挂起的更改。
/replace 将现有搁置集替换为你指定的名称和所有者。
/delete 删除指定的货架集。 只能将 /server 选项与此选项结合使用。 如果未包含 /noprompt 选项,则指定 /delete 选项时会显示一条确认消息。
/comment 添加描述搁置更改的指定注释。
/recursive 如果提供的 itemspec 是文件夹,请搁置指定货架文件夹中的所有项目及其子文件夹中的所有项目。
/noprompt 禁止显示输入的任何提示。
/validate 此选项选择“评估策略和签入说明”,然后在打开 “搁置”复选框之前选中“源文件”对话框。 选中验证复选框后,对话框将评估签入策略,并验证是否已填写需要签入笔记。 当更改被移交以供其他人查看和签入时,此选项非常有用。 与 /noprompt结合使用时无效。
/login 指定使用 Azure DevOps Server 对用户进行身份验证的用户名和密码。
/collection 指定项目集合。

言论

tf 命令行实用工具的 shelve 命令备份挂起的更改、关联的工作项列表、正在进行的签入笔记和 Azure DevOps 服务器上的货架集中的注释。 架集 非常类似于未提交到服务器的变更集。 与变更集一样,任何具有足够权限的用户都可以将货架集从服务器检索到本地工作区。

搁置是检查尚未经过充分测试的挂起更改的替代方法。 如果要中断工作,请使用搁置:

  • 与其他开发人员或测试人员共享一组本地工作文件,而无需签入对版本控制服务器的更改。

  • 暂时搁置一组挂起的更改,而无需签入这些更改,因此你可以改为处理优先级更高的问题。 完成高优先级任务的工作后,可以使用 Unshelve 命令还原搁置的更改。

如果包含 /move 选项,shelve 命令会将每个搁置的文件修订版回滚到 基本工作区版本, 从服务器检索到当前工作区的最后一个版本。 具体而言,对于搁置的所有项,/move 选项:

  • 使用 Undo 撤消搁置的更改。 挂起添加的文件将从工作区中删除。

  • 检索服务器中存在挂起版本的所有文件的基工作区版本到当前工作区。

  • 将当前工作区中的所有项标记为只读。

如果包括 /delete 选项,TFVC 会永久从 Azure DevOps 服务器中删除指定的货架集。

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

例子

以下示例在名为 Reflector_BuddyTest的 Azure DevOps 服务器上创建一个新的货架集,将所有权分配给用户 Pat,将当前工作区中的所有项返回到上次 get 操作期间下载的最新版本,并设置只读状态:

c:\projects> tf shelve Reflector_BuddyTest;Pat /move

以下示例从服务器中删除现有货架集 new-feature,按该名称创建新的货架集,并保留当前工作区中的所有挂起更改:

c:\projects> tf shelve new-feature /replace

以下示例创建一个名为 HelloWorld_TestMe 的货架集,其中包含对 C:\projects 中所有 .cs 文件的所有挂起更改 工作文件夹及其子文件夹:

c:\projects> tf shelve HelloWorld_TestMe c:\projects\*.cs /recursive

以下示例删除 HelloWorld_24 搁置集:

c:\projects> tf shelve HelloWorld_24 /delete