我在Git中使用TeamCity,并试图对单个代理进行git签出(这是CI管道的一部分,在某个时候必须切换分支,因此我需要工作文件夹中的正确Git文件)。
在我们的存储库中,我们有很长的文件名,通常是Git无法处理的。这些都是NPM模块,目前无法从源代码控制中删除。如果您在干净的机器上签出存储库,您将得到一个类似于以下所示的错误。
不能在'****/node_modules/grunt-autoprefixer/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test':文件名下创建太长时间的目录
当在开发人员机器上本地克隆回购时,您必须调用
git配置--系统core.longpaths真
然后一切都是美好的。
在TeamCity构建代理上,我也做了同样的工作。当我打电话的时候
git配置--列表
我可以看到长路径是启用的。当我在这台机器上使用git进行结帐时,我也可以下载存储库。
然而,当我从TeamCity启动一个构建时,我会得到同一个文件名太长的错误。我重新启动了机器(一次又一次地关机),但仍然没有骰子。
发布于 2018-07-30 11:37:04
一般来说,在代理计算机上运行git config --system core.longpaths true应该足够了--它可以在整个配置系统范围内(而不是每个用户)设置配置系统。
这可能不起作用的原因之一是Teamcity使用与命令行不同的git实例(来自不同路径的git.exe)。您可以强制Teamcity使用相同的实例:
which git。或者,运行git config --system --edit并检查已编辑配置文件的位置。发布于 2016-04-21 00:03:15
您需要为TeamCity服务和代理创建一个用户,然后将这两个服务更改为在该用户下运行。接下来,使用该用户登录到Windows,并运行git命令。或者找出如何设置"core.longpaths“的全局选项
https://stackoverflow.com/questions/36635130
复制相似问题