Jenkins Windows Slave 忽略本地 Git 设置

2024-02-13

我已经将 Windows Jenkins 从机设置为 Unix Jenkins 主机。我正在运行 Windows 8.1、msysgit 1.9.5 和 Jenkins 1.616。

当检查路径/文件名超过 255 个字符的存储库时,我收到“文件名太长”错误。这是solved https://stackoverflow.com/a/26111092/1257145通过设置core.longpaths在 git 设置中设置为 true。然而,Windows Jenkins 从机忽略自定义设置并使用标准设置。

我尝试过的

  • Setting core.longpaths在 Windows Jenkins 从机上的全局、系统、本地设置中:

    git config --global core.longpaths true
    git config --system core.longpaths true
    git config --local core.longpaths true
    
  • Setting core.longpaths关于 Unix Jenkins Master

结果

Windows Jenkins Slave 仍然以默认设置运行 git。我做了一个简单的构建任务

"C:\Program Files (x86)\Git\bin\git.exe" config -l

这产生

Started by user mles
[EnvInject] - Loading node environment variables.
Building remotely on jw10 in workspace D:\workspace\windowstesting
[windowstesting] $ sh -xe C:\WINDOWS\TEMP\hudson2817786906482449008.sh
+ 'C:\Program Files (x86)\Git\bin\git.exe' config -l
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
Finished: SUCCESS

note no core.longpaths=true。在 Windows Jenkins 从机上core.longpaths=true is set

C:\Users\jw>git config -l
core.symlinks=false
core.autocrlf=true
core.longpaths=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true

什么有效

克隆具有很长路径/文件名的存储库locally在 Windows Jenkins 从机上without詹金斯。

什么不起作用

在 Windows Jenkins 从机上克隆具有很长路径/文件名的相同存储库with Jenkins

    Started by user mles
    [EnvInject] - Loading node environment variables.
    Building remotely on jw10 in workspace D:\workspace\windowstesting
    Cloning the remote Git repository
    Cloning repository https://github.com/axelhodler/longfile.git
     > git init D:\workspace\windowstesting # timeout=10
    Fetching upstream changes from https://github.com/axelhodler/longfile.git
     > git --version # timeout=10
     > git -c core.askpass=true fetch --tags --progress https://github.com/axelhodler/longfile.git +refs/heads/*:refs/remotes/origin/*
     > git config remote.origin.url https://github.com/axelhodler/longfile.git # timeout=10
     > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
     > git config remote.origin.url https://github.com/axelhodler/longfile.git # timeout=10
    Fetching upstream changes from https://github.com/axelhodler/longfile.git
     > git -c core.askpass=true fetch --tags --progress https://github.com/axelhodler/longfile.git +refs/heads/*:refs/remotes/origin/*
     > git rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
     > git rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10
    Checking out Revision 31b408748324aa6f361828e45ae1d374c3f0fc25 (refs/remotes/origin/master)
     > git config core.sparsecheckout # timeout=10
     > git checkout -f 31b408748324aa6f361828e45ae1d374c3f0fc25
    FATAL: Could not checkout null with start point 31b408748324aa6f361828e45ae1d374c3f0fc25
    hudson.plugins.git.GitException: Could not checkout null with start point 31b408748324aa6f361828e45ae1d374c3f0fc25
       ...
    Caused by: hudson.plugins.git.GitException: Command "git checkout -f 31b408748324aa6f361828e45ae1d374c3f0fc25" returned status code 128:
    stdout: 
    stderr: fatal: cannot create directory at 'launchpad/projects/configurationAdminManager/gofer-configurationAdminManager-notification/src/com/mwaysolutions/gofer2/configurationAdminManager/notification/dummydummy/dummydummy/dummydummy/dummydummy/dummydummy/dummydummy': Filename too long
       ....
    Finished: FAILURE

我无法在开始时添加另一个构建步骤来设置core.longpaths,因为检查存储库是 jenkins 在运行任何构建步骤之前要做的第一件事。

知道为什么我的 Windows Jenkins 从属设备会忽略自定义设置吗?


您可以直接配置它,而不用更改 Jenkins 从属运行的用户。

  • 在适当的“管理”视图下设置一个名为 JenkinsSlaveScripts 的 Jenkins 多配置项目
  • 我使用基于矩阵的安全性来确保我的常规 Jenkins 用户不会运行它
  • 配置轴以在所有 Windows 从站上运行
  • 添加“执行 Windows 批处理脚本”任务

添加脚本(类似于)

cd c:\dev-software\git-2.7.1\bin
git config --global core.longpaths true
git config --system core.longpaths true
git config --local core.longpaths true
echo %USERPROFILE%\.gitconfig on %COMPUTERNAME%
type %USERPROFILE%\.gitconfig

当它运行时,它应该更新从站的配置,无论它们以谁的身份运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins Windows Slave 忽略本地 Git 设置 的相关文章

  • Git 命令显示我对给定远程的权限

    同事可以从远程存储库获取数据 但不能推送到远程存储库 我怀疑他对遥控器只有读权限而没有写权限 我可以通过多种方法来检查这一点 但我想不出他可以在 git 中使用的方法 是否有 git 命令可以显示给定远程存储库的权限 No Git 本身不处
  • 在 git 子模块中签出分支

    如何从子模块内更改分支 当我跑步时git branch从子模块内 我看到以下输出 gt git branch HEAD detached from 229a7b2 master 我如何将自己置于一个新的分支上 喜欢development 只
  • 如何在 PowerShell 中比较本地文件与 FTP 服务器上的文件的年龄并下载远程复制是否较新

    我正在编写一个 PowerShell 脚本 以帮助我为工作设置新电脑 希望这不仅仅是我一个人会使用 所以我正在尝试考虑所有事情 我在 FTP 服务器上保存了离线安装程序 java flash reader 等 如果本地副本尚未保存在创建的
  • NTFS 连接点和符号链接有什么区别?

    在高水平上 两者之间唯一明显的区别NTFS 连接点 http msdn microsoft com en us library windows desktop aa365006 aspx and 符号链接 http msdn microso
  • 我如何移动粘性/捕捉 wpf 窗口

    当我移动 主 窗口时 我想移动两个或更多粘性窗口 我想做这样的事情 private void MainWindow PreviewMouseMove object sender MouseEventArgs e if e LeftButto
  • git subtree pull -P 不管 总是合并冲突

    问题 即使我没有进行任何更改 每次尝试拉入子树时 我都会遇到合并冲突 我在做什么 In 子树仓库 Make some changes git commit am Changes made git push origin master In
  • 如何修复树与树之间的 Git 错误断开链接?

    我的事务被中断 当我再次尝试时 我遇到了空或损坏的对象错误 在另一个问题之后 我删除了所有空文件 当我运行时 git fsck full 我收到这个错误 Checking object directories 100 256 256 don
  • 在 WSL Ubuntu 20.04 上安装 npm 后,我收到消息“/usr/bin/env: ‘bash\r’: No such file or directory”

    运行时我看到以下消息npm install or npm来自终端的命令 执行中node按预期工作 gt npm install usr bin env bash r No such file or directory 2023 年 7 月更
  • DVCS命令的统一

    当处理多个 开源 项目时 多个版本控制系统开始出现问题 虽然它们共享共同的操作 但我经常在输入时犯错误hg add反而git add 我记得前段时间看到过一个项目 通过提供基本命令以统一的方式访问不同的源代码控制软件提交 ci add等在外
  • 在 C# 中使用反射列出枚举中的值

    我正在尝试使用反射来列出一个 Visual Studio 解决方案内的各个项目中的一些类的公共成员和方法 我尝试访问的所有类都是 C 的 并且它们都是从 C 类访问的 我用来进行这些调用的代码如下 public void PopulateE
  • Windows平台下C语言控制串口DTR和RTS引脚

    如何在windows平台上控制串口的DTR和RTS引脚 我希望通过升高或降低电压来对其进行位敲击或操作 您需要使用EscapeComm 函数 https learn microsoft com en us windows desktop a
  • 使用 Windows 任务计划程序安排 [Virtualenv 相关] Python 脚本

    I want to schedule a python script to start at 3AM and break at 5PM every weekday However the problem arises when I need
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有
  • subprocess.Popen('start') 失败

    在 python 中运行此命令将导致 WindowsError 指出找不到指定的文件 FAILS import subprocess subprocess Popen start notepad exe 在命令窗口中 它可以工作 start
  • 重新打包存储库对于大型二进制文件有用吗?

    我正在尝试将大量历史记录从 Perforce 转换为 Git 并且一个文件夹 现在是 git 分支 包含大量大型二进制文件 我的问题是运行时内存不足git gc aggressive 我的主要问题是重新打包存储库是否可能对大型二进制文件产生
  • git - 更新 fork 的 master 并将我的分支重新建立到它之上?

    我分叉了一个 github 项目 然后将其克隆到本地 然后我在新分支中做了一些更改my github the project repo 然后我添加并提交了更改 并推送到我的 github 存储库并提交了拉取请求 所有者已收到我的请求 并希望
  • Apache 反向代理的基本身份验证问题

    我想为在 Ubuntu 服务器 12 04 1 上运行的 Apache 反向代理站点添加基本身份验证 网络应用程序是Jenkins http jenkins ci org运行在 Java EE 容器上 我在中添加了以下配置httpd con
  • dia2dump:CoCreateInstance 失败 - HRESULT = 80040154

    我正在尝试使用 Visual Studio 2017 及其在 Windows 7 x64 上转储 PDB 的签名dia2dump https msdn microsoft com en us library b5ke49f5 aspx 我加
  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白

随机推荐

  • 为什么 fs.createReadStream ... pipeline(res) 锁定读取文件?

    我正在使用 Express 传输音频和视频文件根据这个答案 https stackoverflow com a 24977085 304832 相关代码如下 function streamMedia filePath req res cod
  • 是否可以使用 ASP.NET MVC 创建登录系统但不使用会员提供程序?

    我有一个包含用户表的现有数据库 我们计划使用该数据库并将其用于在 ASP NET MVC 中构建的新系统 然而 我不确定的是我是否能够创建一个不使用内置帐户控制器或常规会员资格提供程序的登录系统 以便我们仍然可以使用现有的表结构 所以我的问
  • Javascript 发光/脉动效果在点击时停止

    我有以下 Javascript 来使文本链接连续发光 脉动 此链接显示同一页面的另一个部分 因此我希望它在用户单击它后停止 所以基本
  • NSDictionary 按浮点数形式对键进行排序

    基本上我有一个带有键和值的 NSDictionary 键都是数字 但目前它们是字符串 我希望能够将它们作为数字进行比较以便对它们进行排序 例如 如果我有这样的字典 100 gt id object 20 gt id object 10 gt
  • 在 ASP.NET MVC 应用程序中使用 HandleErrorAttribute

    我对在 MVC 5 应用程序中使用 HandleErrorAttribute 的最佳方式有疑问 众所周知 我们可以将此属性添加到全局过滤器中 如下所示 filters Add new HandleErrorAttribute View Er
  • 如何使用 jQuery 动态调用 javascript 对象的属性

    大家好 我有一个带有一些属性的 javascript 对象 比如说 function Animal this id this name 我需要以动态方式调用 id 函数来获取和设置它的值 像这样 Animal animal new Anim
  • 手工SHA-256,计算SHA-256初始单词

    我正在阅读出版物FIPS 180 4 https csrc nist gov csrc media publications fips 180 4 final documents fips180 4 draft aug2014 pdf并尝试
  • C# Databound ComboBox 自动更新

    我有一个绑定到数据库表的组合框 当用户将新数据插入表中时 我希望组合框自动更新以显示该数据 但是我不确定如何执行此操作 帮助将不胜感激 我的一个程序中有类似的东西 每当我的 datagridview 更新时 我都会清空组合框并重新填充它 大
  • 如何在另一个查询的 while 循环内运行 SQL 查询

    当 photoId 直接位于语句上而不是变量时 以下操作完全没有问题 img query mysqli query con SELECT FROM imgs WHERE photoid 103 or die mysqli error con
  • 模拟器打开时读取私人有效用户设置警告

    当我点击 textField 在 Xcode 中打开模拟器键盘时 会出现以下错误 2017 01 01 17 19 38 668544 FirebaseChat 12334 2921090 MC System group container
  • 信号处理程序返回到哪里?

    假设当接收并处理信号时 进程正在 main 方法中运行 当信号处理程序完成时 进程是否返回到 main 中接收信号的行 或者返回到信号调用 附 我知道我自己可以快速测试这一点 但当我无法访问我的电脑时 我就想到了这个想法 Thanks 当信
  • 在 Windows 7 上安装 Apache Solr 4.1 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我怎么能够安装apache solr
  • 与曼哈顿距离的距离变换 - Python / NumPy / SciPy

    我想使用 Python 和 Numpy 生成这样的二维数组 0 1 2 3 4 4 3 4 1 2 3 4 4 3 2 3 2 3 4 4 3 2 1 2 3 4 4 3 2 1 0 1 4 5 5 4 3 2 1 2 几乎数字从零开始左右
  • 何时使用关联实体?

    假设有两个实体 分别称为 Employee 和 Campaign 一名员工可以参与多项活动 一项活动可以有多名员工 我已经知道这是多对多的关系 在绘制 ER 图 Chen 表示法 时 这种关系用菱形来表示 但关联实体有一个单独的符号 它象征
  • CSS3 calc 函数:mod 运算符的问题

    我在用着 宽度 计算 100 mod 320 但它总是返回父元素的完整宽度 语法似乎没有任何问题 看起来像是一个支持问题 在 chrome 37 和 firefox 32 0 上测试 这里有一个fiddle http jsfiddle ne
  • CakePHP 2.1 使用包含条件进行查找

    我有以下型号 行业 ID 名称 Movie id name Industry id 行业有很多电影 Trailer id name movie id 电影有很多预告片 我需要为每个找到 6 个最新预告片Industry 每部电影不需要有预告
  • 类型错误:float() 参数必须是字符串或数字,而不是“函数” – Python/Sklearn

    我有一个名为 Flights py 的程序的以下代码片段 Load the Dataset df dataset df isnull any df df fillna lambda x x median Define X and Y X d
  • MySql查询时间间隔数据的直方图

    我有一个这种类型的事件输入 event user event start event end event type 插入到 MySql 表中 每个表都在自己的行中 以 user start 作为主键 我需要按时间间隔 例如分钟 查询类型的直
  • 如何调试Android的NFC实现?

    这个问题可以分解成多个更小的问题 最终结果是能够使用 gdb 等调试器在 Galaxy Nexus Android 4 1 设备的 C C NFC 实现中设置断点 以检查其内部状态 是否可以将 Galaxy Nexus 设备上的库替换为包含
  • Jenkins Windows Slave 忽略本地 Git 设置

    我已经将 Windows Jenkins 从机设置为 Unix Jenkins 主机 我正在运行 Windows 8 1 msysgit 1 9 5 和 Jenkins 1 616 当检查路径 文件名超过 255 个字符的存储库时 我收到