Shelve 命令
将一组挂起的更改连同挂起的签入说明、注释和关联工作项的列表,存储到运行 Visual Studio Team Foundation Server 的服务器上,但实际上并不将它们签入到版本控制服务器中。
所需权限
如果要使用 shelve 命令来删除搁置集,您必须是搁置集所有者或将**“管理搁置的更改”权限设置为“允许”**。 有关更多信息,请参见 Team Foundation Server 权限。
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 如何分析项规范以确定哪些项在范围之内的更多信息,请参见命令行选项。 |
shelvesetname |
指定可以通过其从 Team Foundation 服务器检索搁置集的名称。 可以指定 shelvesetname 和 owner 的现有组合,但必须同时指定 /replace 。 必须提供此参数的值。 |
owner |
通过用户名标识搁置集的当前或未来的所有者。 默认情况下,如果没有指定,则将搁置集的所属权分配给当前用户。 |
username |
向 /login 选项提供值。 可以按域\用户名或用户名的格式指定用户名值。 |
TeamProjectCollectionUrl |
您要搁置的文件或文件夹所在的团队项目集合的 URL(例如,http://myserver:8080/tfs/DefaultCollection/)。 |
选项 |
说明 |
---|---|
/move |
在搁置操作成功之后,将挂起的更改从工作区中移除。 |
/replace |
替换与您指定的搁置集具有相同名称和所有者的现有搁置集。 |
/delete |
删除指定的搁置集。 只有 /server 选项可以与此选项一起使用。 如果不包含 /noprompt 选项,则在指定 /delete 选项时,将出现确认消息。 |
/comment |
添加说明搁置更改的指定注释。 |
/recursive |
如果提供的项规范是一个文件夹,则搁置指定的搁置集文件夹中的所有项、其子文件夹及其中所有的项。 |
/noprompt |
取消显示需要您输入的任何提示。 |
/validate |
只有在不与 /noprompt 一起使用时才有效。 在“搁置 - 源文件”对话框打开时,此选项会在对话框中选中验证复选框。 选中验证复选框后,该对话框将评估签入策略,并验证是否已填写必需的签入说明。 在提交更改以便由其他人进行检查和签入时,此选项很有用。 |
/login |
指定用于在 Team Foundation Server 中验证用户身份的用户名和密码。 |
/collection |
指定团队项目集合。 |
备注
tf 命令行实用工具的 shelve 命令将挂起的更改、关联工作项列表、正在进行的签入说明和注释备份到 Team Foundation Server 上的搁置集中。 搁置集与未提交到服务器的变更集很相似。 与变更集一样,任何有足够权限的用户都可以将搁置集从服务器检索到本地工作区。
搁置是签入尚未经过充分测试的挂起的更改的替代方法。 当您想要中断工作时,可以使用搁置:
在不将您的更改签入到版本控制服务器的情况下,与其他开发人员或测试人员共享一组本地工作文件。
暂时将一组挂起的更改放置在一旁,而不将它们签入,以便您可以处理优先级更高的问题。 在处理完高优先级任务之后,可以使用 Unshelve 命令 还原搁置的更改。
如果包含 /move 选项,shelve 命令会将所有搁置的文件修订回滚到各自的基工作区版本。基工作区版本是从服务器检索到当前工作区的最后一个版本。 具体来说,对于您搁置的所有项,/move 选项将确保:
使用 Undo 可撤消已搁置的更改。 从工作区中删除作为挂起的添加项的文件。
将存在挂起的版本的所有文件的基工作区版本从服务器检索到当前工作区。
将当前工作区中的所有项标记为只读。
如果包含 /delete 选项,Team Foundation 会将指定的搁置集从 Team Foundation 服务器中永久地移除。
有关如何查找 tf 命令行实用工具的更多信息,请参见 Tf 命令行实用工具命令。
示例
下面的示例将在 Team Foundation Server 上创建一个名为 Reflector_BuddyTest 的新搁置集,将所属权分配给用户 Hans,将当前工作区中的所有项返回到上次执行 get 操作时下载的最新版本,然后设置只读状态。
c:\projects> tf shelve Reflector_BuddyTest;Hans /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