如何修改Team Foundation Server(tf get)本地存储路径实现客户隔离?
解决TFS tf get 自定义本地存储路径的问题
嘿,我来帮你搞定这个TFS路径的问题!你遇到的核心问题是tf get的本地存储路径是由TFS工作区的映射关系决定的,不是直接改命令参数就能生效的,下面一步步给你讲怎么调整:
第一步:先搞懂当前的工作区映射
TFS的本地路径和服务器路径是通过「工作区映射」绑定的,你先确认下当前的映射关系,打开命令提示符执行:
tf workspace /info
或者更详细查看所有工作区:
tf workspaces /computer:%COMPUTERNAME% /owner:*
执行后你会看到当前工作区中,服务器端的$/companyName(对应你命令里的"companyName")是映射到C:\Users\myFolders\Escrow\XYZCompany\TFS的,这就是为什么内容默认存在这里。
第二步:修改工作区映射到目标子文件夹
要把内容拉到C:\Users\myFolders\Escrow\XYZCompany\TFS\CompanyOne,你需要更新工作区的映射关系,有两种方式:
方式一:命令行修改
在命令提示符里执行(注意替换$/服务器端的companyName路径为你实际的服务器路径):
tf workfold /map $/服务器端的companyName路径 C:\Users\myFolders\Escrow\XYZCompany\TFS\CompanyOne
如果原来的映射还存在,先删除旧的映射:
tf workfold /unmap $/服务器端的companyName路径
方式二:通过Visual Studio修改
- 打开Visual Studio,进入「团队资源管理器」
- 找到「设置」→「工作区」
- 选择你正在使用的工作区,点击「编辑」
- 在映射列表里找到对应服务器路径,把本地路径改成
C:\Users\myFolders\Escrow\XYZCompany\TFS\CompanyOne,保存即可
第三步:重新拉取内容到新路径
修改完映射后,执行你的get命令(现在就会自动拉到新的子文件夹了):
tf get "companyName" /recursive /force /noprompt
这里加/force是强制覆盖本地内容,确保新路径下的内容和服务器完全同步。
为什么之前修改路径没用?
你之前直接改本地路径但没调整工作区映射,TFS会认为当前工作区映射的路径下内容已经是最新的,所以提示「一切已更新」;而省略TFS文件夹时它自动创建,是因为工作区映射里的路径包含TFS文件夹,TFS会自动确保映射的本地路径存在。
内容的提问来源于stack exchange,提问作者Daniel Godoy
相关产品推荐
相关产品推荐

