Jenkins一直在重置工作区的.git/config

Jenkins一直在重置工作区的.git/config,git,jenkins,jenkins-plugins,Git,Jenkins,Jenkins Plugins,在Jenkins的工作中,我设置了两个存储库:本地存储库和远程存储库。计划是定期检查远程设备,当它检测到变化时,将其推送到本地,然后由一个定制的分布式测试系统控制测试并将结果返回给Jenkins 只要有一个问题,一切都很好。每次我重新启动Jenkins,它都会删除远程或本地,这取决于作业工作区的.git/config文件中的天气报告,我必须手动编辑它 我如何配置作业: 回购url:/path/to/local 名称:localrepo 回购网址:gitolite@someserver:there

在Jenkins的工作中,我设置了两个存储库:本地存储库和远程存储库。计划是定期检查远程设备,当它检测到变化时,将其推送到本地,然后由一个定制的分布式测试系统控制测试并将结果返回给Jenkins

只要有一个问题,一切都很好。每次我重新启动Jenkins,它都会删除远程或本地,这取决于作业工作区的.git/config文件中的天气报告,我必须手动编辑它

我如何配置作业:

回购url:/path/to/local 名称:localrepo 回购网址:gitolite@someserver:therepo 名称:原产地 生成的.git/config仅包含:

[remote "localrepo"]
    fetch = +refs/heads/*:refs/remotes/localrepo/*
    url = /path/to/local

你知道我做错了什么吗?

我假设你正在使用Jenkins git插件。我认为您需要让git插件控制本地git repo,而不是在Jenkins背后进行任何手动配置

当您使用远程git存储库配置Jenkins作业时,您可以对更改进行Jenkins轮询,也可以安排向Jenkins发送通知,例如从git钩子脚本发送通知

当Jenkins检测到您告诉它要构建的任何分支中的更改时,它将更新Jenkins工作区中的git repo,然后准备执行作业配置的构建步骤

工作区中的git repo由Jenkins git插件以某种非标准的方式管理。您没有明确指定git中的文件如何发送到定制的分布式测试系统,因此我无法推测Jenkins工作区是否适合您,或者是否需要做进一步的工作

要真正回答您的问题,我做错了什么:您应该停止在Jenkins工作区中手动更改本地git repo的配置,让git插件来管理它。如果这不是一个好的解决方案,您可能需要停止使用git插件

由于您似乎愿意手工进行大量回购管理,我认为您需要git插件的唯一目的是轮询远程回购,即检测更改

您可以使用,例如,它允许您编写自定义脚本来管理轮询和签出

另一种选择是忘记轮询,直接从远程git repo的post-commit钩子脚本触发作业的新构建。这将允许您在作业配置中为SCM指定“无”,并完全控制本地回购管理


我自己可能会检查是否有可能与Jenkins git插件合作并按原样使用本地git repo。git插件为您提供了一些很好的功能,如每个构建中的更改列表,如果作业没有SCM,您将无法获得这些更改。

这就是我所做的:1安装Jenkins&plugins。2.找一份新工作。3设置新作业的git设置。4开始一个新的构建。直到我发现我通过jenkins的配置设置的两个遥控器中只有一个存在,一个被轮询以进行更改,我才干预工作区。另一个遥控器由实际分发和运行规范的脚本使用。我不能再发生这种情况了。关上它?