TeamCity Git克隆参数

TeamCity Git克隆参数,git,teamcity,Git,Teamcity,作为CI管道的第一步,是否可以向TeamCity执行的git克隆操作添加参数?我想添加“-c core.longpaths=true”。 如何做到这一点?我发现TeamCity与git的互动相当令人沮丧。你确定它正在执行clone命令吗?因为在我的测试中,它不 无论如何,有些选项可能适合您的需要: 您可以使用手动签出,然后您的签出过程可以是任何您想要的。在构建版本的版本控制设置中,您可以将VCS签出模式设置为不自动签出文件。然后,作为第一个构建步骤,您将完全按照自己喜欢的方式执行git签出过程

作为CI管道的第一步,是否可以向TeamCity执行的git克隆操作添加参数?我想添加“-c core.longpaths=true”。
如何做到这一点?

我发现TeamCity与git的互动相当令人沮丧。你确定它正在执行
clone
命令吗?因为在我的测试中,它不

无论如何,有些选项可能适合您的需要:

您可以使用手动签出,然后您的签出过程可以是任何您想要的。在构建版本的版本控制设置中,您可以将VCS签出模式设置为不自动签出文件。然后,作为第一个构建步骤,您将完全按照自己喜欢的方式执行git签出过程

如果这是无法管理的。。。其他的选择是黑客。它们确实需要代理端签出,并且这些步骤必须在每个代理上执行

我假设将
longpaths
设置放在系统配置文件中不是一个可行的选项(因为它会影响代理上的所有repo)

您可以尝试的一个选项是运行作业一次,然后使用构建日志查找签出目录;然后转到代理上的那个目录——这将是一个git repo。除去.git目录以外的所有内容,然后运行
git config
设置
longpaths
。后续构建—只要它们重用签出目录—将有望获得设置


或者您可以编写一个包装器脚本,将您想要的参数添加到命令行并调用git。VCS根目录可以指定要使用的“git可执行文件”,因此您可以将其指向包装器。如果可以将参数应用于给定构建中的每个git调用,那么这是可行的——在您的情况下,这可能是可行的。(如果没有,您必须检查命令行以决定何时应用它。)

我不知道有什么方法可以做到这一点,但您很可能会遇到其他问题。即使您可以诱使git使用长路径支持(POSIX子系统),任何用于构建代码的工具都可能不支持它。最好的方法是减少路径的长度。