TFS2017.2构建每次均执行“清理”(拉取新代码)原因排查
排查TFS 2017构建每次全量拉取代码的问题
嘿,我来帮你梳理下这个问题——既然你已经把「获取源」和构建步骤的Clean设为false了,那大概率是下面这些容易被忽略的配置环节出了问题:
代理工作目录的全局清理设置
TFS构建代理本身可能有全局的清理策略,会覆盖你在单个构建定义里的设置。你可以:- 找到代理安装目录下的
agent.config文件,检查其中的cleanWorkingDirectory参数是否被设为true; - 登录TFS服务器的代理管理页面,查看对应代理的设置,是否勾选了「每次构建后清理工作目录」的选项。
- 找到代理安装目录下的
「获取源」的细节配置遗漏
除了Clean选项,还要确认:- 「获取模式」是不是被误改成了**「获取全部」**(默认应该是「增量获取」);
- 有没有勾选「在每次构建前重置本地仓库」,这个选项会强制丢弃本地缓存,重新拉取全部代码。
构建保留策略的影响
如果构建定义的「保留策略」设置得过于严格,比如勾选了「删除旧构建的工作目录」且保留的构建数量极少,代理会因为没有之前的缓存目录,导致每次构建都只能全量拉取。你可以去构建定义的「保留策略」页面检查相关设置。代理工作目录的权限问题
如果运行构建代理的服务账户没有对代理工作目录的读写权限,增量缓存无法被正常保存,每次构建都会被迫重新拉取代码。可以右键代理工作目录,检查文件夹权限,确保代理账户拥有完全控制权限。版本控制客户端的手动排查
你可以手动进入代理工作目录下的代码仓库文件夹,运行对应的版本控制命令测试增量获取是否正常:- Git仓库:执行
git fetch - TFVC仓库:执行
tf get /recursive /noprompt
如果手动执行也无法增量获取,可能是代理和TFS服务器之间的同步出现了异常,需要进一步排查服务器端的仓库状态。
- Git仓库:执行
内容的提问来源于stack exchange,提问作者Ben_G
相关产品推荐
相关产品推荐

