我需要重命名一个包含文件的TFS文件夹,以删除特定的文本块

时间:2017-09-07 20:18:32

标签: powershell tfs cmdlets

我使用VS 2015,因此2015年的TFSCMDLets插件.TFS服务器是2013年。

旧的" New-TfsPendingChange -Rename"不再支持我在SO上找到的语法,无论是根据文档还是我在尝试时收到的错误消息。

我无法检查它们并使用filesystem rename命令重命名它们,因为这会导致TFS失去对文件的跟踪。

我也尝试使用tf.exe,我需要的命令可用,但它似乎无法找出要使用的工作区,即使包含的文件夹只映射到一个工作区。在这种情况下,它在传递文字文件名时工作正常,但在使用foreach传递路径时失败,如下所示: tf workspaces / collection:devtfs \ DeltaWA_ITA_BI

dir" C:\ TFS \ BusinessIntelligence \ Database \ Reporting_Prod \ Test Views \" -filter" * .View.sql" | foreach {$ newname = $ .Name -replace" .View.sql"," .sql&#34 ;; tf重命名$ $ newname}

有没有人有一个适用于VS2015,TFS 2013的示例脚本?

2 个答案:

答案 0 :(得分:0)

您应避免使用您的操作系统重命名由TFVC管理的项目(例如,使用Windows文件资源管理器或Windows命令提示符中的重命名命令)。相反,请在源代码管理资源管理器

中执行此操作
  1. 在Source Control Explorer中,选择要编辑的文件, 打开其快捷菜单,然后选择重命名
  2. 键入所需的项目名称。
  3. 如果要使用命令提示符或脚本执行此操作,可以使用tf rename命令。不确定工作区错误的详细错误消息。

    但是,您需要确保从映射文件夹运行命令,您可以运行tf workfold来仔细检查当前文件夹是否已映射。

    如果映射并且错误仍然存​​在,则可能是工作区缓存出现问题。尝试通过tf workspaces命令删除缓存

    tf workspaces /remove:(*|workspace1[,workspace2,...]) 
    /collection:(*|TeamProjectCollectionUrl)
    

答案 1 :(得分:0)

总体答案分为两部分: 1.您真的必须在要完成工作的文件夹中执行tf.exe。我在我看到的代码中看到了这一点,但并不理解这是一个要求。 2.这意味着您必须将tf.exe放入您的路径中。得到了同事的帮助。

在那之后,我的小脚本按照需要工作。

我仍然没有看到使用TFS CMDLets的方法。这有点遗憾,不是很重要。

感谢您的帮助!