如何:搁置和取消搁置挂起的更改
更新:2007 年 11 月
搁置功能可以保留工作区中的挂起的更改而执行更高优先级的任务,也可以与其他用户共享代码以进行代码评审。
通过执行“获取最新版本”操作,将您的工作区与最新的服务器版本同步。然后您需要生成应用程序,以确保在搁置或签入之前对其进行编译。通过执行此操作,您将有机会合并在工作区之外对受版本控制的文件所做的更改。
必需的权限
若要取消搁置挂起的更改,您必须将“读取”权限和“签出”权限都设置为“允许”。对于执行搁置任务,则没有权限要求。有关更多信息,请参见 Team Foundation Server 权限。
从源代码管理资源管理器搁置文件夹和文件
在“源代码管理资源管理器”中,右击该文件或文件夹,再单击“搁置挂起的更改”。
在“搁置 - 源文件”对话框的“搁置集名称”框中键入搁置集名称,例如“搁置测试”。
“搁置 - 源文件”对话框包括两个选项:
在本地保留挂起的更改
默认情况下此选项处于选中状态。如果选中了此选项,将保留您在本地工作区中对文件或文件夹所做的更改。
在搁置之前评估策略和签入说明
如果选中了此选项,将在创建搁置集之前评估所有签入策略。有关更多信息,请参见使用签入策略和签入说明。
在“注释”框中键入“测试我的搁置集”,然后单击“搁置”。
文件和文件夹将复制到版本控制服务器,其他团队成员可以对它们执行取消搁置操作。
从解决方案资源管理器搁置文件夹和文件
在“解决方案资源管理器”中右击,再单击“搁置挂起的更改”。
在“搁置 - 源文件”对话框的“搁置集名称”框中键入搁置集名称,例如“搁置测试”。
“搁置 - 源文件”对话框包括两个选项:
在本地保留挂起的更改
默认情况下此选项处于选中状态。如果选中了此选项,将保留您在本地工作区中对文件或文件夹所做的更改。
在搁置之前评估策略和签入说明
如果选中了此选项,将在创建搁置集之前评估所有签入策略。有关更多信息,请参见使用签入策略和签入说明。
在“注释”框中键入 Testing my shelveset,然后单击“搁置”。
文件和文件夹将复制到版本控制服务器,其他团队成员可以对它们执行取消搁置操作。
从“挂起的更改”窗口搁置挂起的更改
在 Visual Studio 集成开发环境 (IDE) 中,如果尚未打开“挂起的更改”窗口,请依次单击“视图”、“其他窗口”和“挂起的更改”窗口。
在“挂起的更改”窗口中,单击“源文件”图标,然后选择要搁置的文件。
单击“工作项”,然后添加或移除工作项。对于您添加的每个工作项,从“签入操作”列中选择“解决”或“关联”。
选中或清除“在本地保留挂起的更改”或“在搁置之前评估策略和签入说明”框。
说明: 根据所选的选项,搁置操作会将一组受版本控制的文件修订、签入说明和一个相关工作项列表移动或复制到服务器之外的位置。这样,您就避免了因不小心而中断生成的风险。
单击“搁置”。
在“搁置 - 源文件”对话框中,在“搁置集名称”框中键入一个名称。
在“注释”框中键入注释,然后单击“搁置”。
从命令行搁置挂起的更改
单击“开始”,单击“所有程序”,指向“Microsoft Visual Studio 2008”,指向“Visual Studio Tools”,然后单击“Visual Studio 2008 命令提示”。
键入 cd 路径,其中路径 是用于存储服务器内文件的个人副本的目录位置(例如 c:\projects)。
键入 tf.exe shelve 搁置名称,然后按“Enter”。
将出现“搁置 - 源文件”对话框。
“搁置 - 源文件”对话框包括两个选项:
在本地保留挂起的更改
默认情况下此选项处于选中状态。如果选中了此选项,将保留您在本地工作区中对文件或文件夹所做的更改。
在搁置之前评估策略和签入说明
如果选中了此选项,将在创建搁置集之前评估所有签入策略。有关更多信息,请参见使用签入策略和签入说明。
在“搁置 - 源文件”对话框中,选择要搁置的文件和文件夹,然后单击“确定”以完成搁置操作。
说明: 有关搁置命令的可用完整语法,请参见Shelve 命令。
取消搁置
在对搁置集取消搁置时,只要每个已搁置的修订与工作区中挂起的更改不冲突,Team Foundation 就会将该修订还原到目标工作区中作为一个挂起的更改。有关取消搁置过程中所发生情况的更多详细信息,请参见使用版本控制搁置集。
以下是对搁置集取消搁置的两条最常见的原因:
无接触代码评审(即工作区模拟)
将已搁置的挂起更改集成到以后的工作中
可以使用 unshelve 命令将单个文件修订从搁置集还原到工作区。但是,取消搁置不会将整个工作区还原到基本工作区版本,即搁置的修订所基于的服务器版本。取消搁置后,执行以下任一操作可以避免在代码中引入时间不一致。
取消搁置一组挂起的更改
在团队资源管理器中,单击“文件”,指向“源代码管理”,然后单击“取消搁置挂起的更改”。
将出现“取消搁置”对话框。
在“所有者名称”框中,键入搁置集创建者的姓名(如 ADVENTUREWORKS\JuanGo 或只键入 juango),然后单击“查找”。
在“结果”窗格中,选择要取消搁置到工作区中的搁置集,然后单击“详细信息”。
在“搁置集详细信息”对话框中,如果要从 Team Foundation 版本控制服务器上删除搁置集,则清除“将搁置集保留在服务器上”框。
如果不希望还原与搁置集关联的工作项和签入说明,还可以取消选中“还原工作项和签入说明”选项。
选择要取消搁置到工作区中的搁置集或搁置集项,然后单击“取消搁置”。
Get 操作会自动合并文件两个版本之间的可协调差异,从而帮助您手动合并冲突。但取消搁置操作则不同,它不支持合并。通过在开始评审代码时将已搁置的挂起的更改从工作区中移除,可以确保审阅者对搁置集所做的任何更改(例如向文件添加注释)不会在取消搁置过程中产生合并冲突。
您也可以使用 Unshelve 命令 从命令行执行取消搁置。