问题描述
我是一名 IT 项目经理。我团队中的一位开发人员抱怨她不断失去与 TFS 的连接,并且 VS 需要与 TFS 的持续连接才能为她工作。我们的 CIO 问我为什么她不仅需要在签入和签出代码时连接到 TFS。我不知道答案。
谢谢, 瓦尔
解决方法
TFVC,即Team Foundation Version Control,是在Team Foundation Server (TFS) 中存储源代码的一种方式,如果您的TFS 服务是2015 或更高版本,则Git 是新的默认值。 TFVC 是一个集中的版本控制系统,并假设您的开发人员与服务器有持久的连接。当开发人员的工作区被配置为“服务器”工作区时尤其如此,在这种情况下,每个文件系统操作都会同步到中央服务器。
在 Workspace Type = Server
模式下,您的选择是:
- 使用 Go Offline 选项暂时断开与服务器的连接并在本地隔离工作。
- Of 将工作区类型更改为
local
,这将创建一个本地文件夹,其中包含工作区中每个文件的压缩副本。
这将减少与服务器的交互次数,使身份验证混乱时的工作更加愉快。但是开发人员应该定期检入和检出代码,最好是每次使代码处于稳定状态的更改。甚至当签入/签出时需要身份验证提示时,我会感到非常沮丧。
但你真正的问题
不是 TFS 是否提示进行身份验证,而是工作站或服务器基础设施不(允许)缓存凭据的原因。这可能有多种原因:
- TFS 服务器未配置安全连接 (https)
- TFS 服务器名称与服务器配置不匹配
- 代理服务器正在干扰
- 本地开发代理(如 Fiddler)已打开且未配置为忽略 TFS 服务器
- Active Directory 策略强制不存储凭据
- 计算机的 TPM 运行不正常并不断重置
- 有 VPN 干扰
- 某些端点监控系统正在检测可疑行为并触发重新身份验证
- Windows 凭据管理器中缓存了不正确的凭据。
- TFS 服务器位于错误的互联网安全区域
- 互联网安全区域设置被配置为不存储凭据
- ...
- ...
解决这个问题,开发者会更开心。
而且 TFVC 已经老了(大多数团队已经迁移到 Git)
正如其他人已经评论过的那样,TFVC 正在变老,许多开发团队已迁移到 Git。 Git 为开发人员提供了一份源代码及其历史的本地副本,以便开发人员在无需连接中央服务器的情况下在本地工作。
如果迁移不是一个选项(目前),tools like git tfs
可以帮助开发人员在本地开始使用 Git,同时仍然连接到中央 TFVC 服务器以将更改发送给团队的其他成员。
但长期的解决方案是升级您的开发工具并摆脱 TFVC。
TFS 变老了(现在是 Azure DevOps Server)
当您使用它时,TFS 会变老。它已于 2018 年更名,现在称为 Azure DevOps 服务器。 Azure DevOps Server 2020 是最新的。如果您在使用 TFS 时遇到问题,确保它是最新的并安装在最新的 Windows Server 版本上也有帮助。