首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过TeamCity使用Git的长文件路径

通过TeamCity使用Git的长文件路径
EN

Stack Overflow用户
提问于 2016-04-14 22:29:17
回答 2查看 2.2K关注 0票数 1

我在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启动一个构建时,我会得到同一个文件名太长的错误。我重新启动了机器(一次又一次地关机),但仍然没有骰子。

EN

回答 2

Stack Overflow用户

发布于 2018-07-30 11:37:04

一般来说,在代理计算机上运行git config --system core.longpaths true应该足够了--它可以在整个配置系统范围内(而不是每个用户)设置配置系统。

这可能不起作用的原因之一是Teamcity使用与命令行不同的git实例(来自不同路径的git.exe)。您可以强制Teamcity使用相同的实例:

  1. 从命令行检查git.exe位置:运行which git。或者,运行git config --system --edit并检查已编辑配置文件的位置。
  2. 将TeamCity配置为从该路径使用git:https://confluence.jetbrains.com/display/TCD18/Git#Git-Gitexecutableontheagent
票数 4
EN

Stack Overflow用户

发布于 2016-04-21 00:03:15

您需要为TeamCity服务和代理创建一个用户,然后将这两个服务更改为在该用户下运行。接下来,使用该用户登录到Windows,并运行git命令。或者找出如何设置"core.longpaths“的全局选项

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36635130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档