jenkinsci / jenkinsci/git-client-plugin

[JENKINS-75860] Updating submodules not working

Open
#1,696 1 comment 0 reactions 0 assignees View on GitHub
component:git-client-plugin imported-jira-issue priority:minor resolution:unresolved
Dominant language
Java
Stars
152
Forks
402
Avg merge
6h 47m
Merged PRs (30d)
4

Description

When recursively updating git submodules an exception is thrown (see attached log file). The submodule "BuildConfig" exists and is correctly configured in my .gitmodules file.

The command that extracts all submodules works:

> git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10

 

But the url can not be fetched:

> git config --get submodule.BuildScripts.url # timeout=10

hudson.plugins.git.GitException: Command "git config --get submodule.BuildScripts.url" returned status code 1:
....

 

Problem is the missing file reference to .gitmodules like it exists in the first command:

-f .gitmodules 

 

Edit: I found that the above behavior comes from the '.git/config' and '.gitmodules' files being inconsistent.

I propose that for consistency reasons either '-f .gitmodules' gets removed from

git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url

or

git config --get submodule.XXX.url

is changed to 

git config -f .gitmodules --get submodule.XXX.url

 

As Git does favor the latter formatting I prefer using '.gitmodules' over '.git/config' for submodules.

---
Originally reported by monthycurious, imported from: Updating submodules not working


  • assignee: monthycurious
  • status: Open
  • priority: Minor
  • component(s): git-client-plugin
  • label(s): git
  • resolution: Unresolved
  • votes: 0
  • watchers: 2
  • imported: 20251211-071809

Raw content of original issue

When recursively updating git submodules an exception is thrown (see attached log file). The submodule "BuildConfig" exists and is correctly configured in my .gitmodules file.

The command that extracts all submodules works:



> git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10


 

But the url can not be fetched:



> git config --get submodule.BuildScripts.url # timeout=10

hudson.plugins.git.GitException: Command "git config --get submodule.BuildScripts.url" returned status code 1:
....


 

Problem is the missing file reference to .gitmodules like it exists in the first command:



-f .gitmodules 


 

Edit: I found that the above behavior comes from the '.git/config' and '.gitmodules' files being inconsistent.
I propose that for consistency reasons either '-f .gitmodules' gets removed from



git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url


or



git config --get submodule.XXX.url


is changed to 



git config -f .gitmodules --get submodule.XXX.url


 

As Git does favor the latter formatting I prefer using '.gitmodules' over '.git/config' for submodules.

environment

```
Jenkins: 2.504.3 (in Docker version 28.3.0, build 38b7060)

OS: Linux - 6.1.0-37-amd64

Java: 21.0.7 - Eclipse Adoptium (OpenJDK 64-Bit Server VM)

---

ant:513.vde9e7b_a_0da_0f

antisamy-markup-formatter:173.v680e3a_b_69ff3

apache-httpcomponents-client-4-api:4.5.14-269.vfa_2321039a_83

apache-httpcomponents-client-5-api:5.5-150.veb_76e719855b_

asm-api:9.8-135.vb_2239d08ee90

authentication-tokens:1.131.v7199556c3004

blueocean:1.27.21

blueocean-bitbucket-pipeline:1.27.21

blueocean-commons:1.27.21

blueocean-config:1.27.21

blueocean-core-js:1.27.21

blueocean-dashboard:1.27.21

blueocean-display-url:2.4.4

blueocean-events:1.27.21

blueocean-git-pipeline:1.27.21

blueocean-github-pipeline:1.27.21

blueocean-i18n:1.27.21

blueocean-jwt:1.27.21

blueocean-personalization:1.27.21

blueocean-pipeline-api-impl:1.27.21

blueocean-pipeline-editor:1.27.21

blueocean-pipeline-scm-api:1.27.21

blueocean-rest:1.27.21

blueocean-rest-impl:1.27.21

blueocean-web:1.27.21

bootstrap5-api:5.3.5-1

bouncycastle-api:2.30.1.80-261.v00c0e2618ec3

branch-api:2.1226.ve1e7e0b_4b_95f

build-timeout:1.38

caffeine-api:3.2.0-166.v72a_6d74b_870f

checks-api:373.vfe7645102093

cloud-stats:377.vd8a_6c953e98e

cloudbees-bitbucket-branch-source:936.4.1

cloudbees-folder:6.1026.ve06dfa_cf31c3

commons-compress-api:1.27.1-3

commons-lang3-api:3.17.0-87.v5cf526e63b_8b_

commons-text-api:1.13.1-176.v74d88f22034b_

config-file-provider:988.v0461fcc2b_9d1

credentials:1415.v831096eb_5534

credentials-binding:687.v619cb_15e923f

dark-theme:524.vd675b_22b_30cb_

display-url-api:2.209.v582ed814ff2f

docker-commons:457.v0f62a_94f11a_3

docker-java-api:3.5.1-116.v2798d5ed4ce7

docker-plugin:1274.vc0203fdf2e74

docker-workflow:621.va_73f881d9232

durable-task:587.v84b_877235b_45

echarts-api:5.6.0-4

eddsa-api:0.3.0.1-19.vc432d923e5ee

email-ext:1911.v19b_8e86f9815

favorite:2.237.v79163ca_8b_892

font-awesome-api:6.7.2-1

git:5.7.0

git-client:6.2.0

github:1.43.0

github-api:1.321-488.v9b_c0da_9533f8

github-branch-source:1824.v046257273408

gradle:2.15

gson-api:2.13.1-139.v4569c2ef303f

handy-uri-templates-2-api:2.1.8-36.v85e4cb_234a_13

htmlpublisher:425

instance-identity:203.v15e81a_1b_7a_38

ionicons-api:88.va_4187cb_eddf1

jackson2-api:2.19.0-404.vb_b_0fd2fea_e10

jakarta-activation-api:2.1.3-2

jakarta-mail-api:2.1.3-2

javadoc:327.vdfe586651ee0

javax-activation-api:1.2.0-8

jaxb:2.3.9-133.vb_ec76a_73f706

jenkins-design-language:1.27.21

jjwt-api:0.11.5-120.v0268cf544b_89

joda-time-api:2.14.0-127.v7d9da_295a_d51

jquery3-api:3.7.1-3

jsch:0.2.16-95.v3eecb_55fa_b_78

json-api:20250517-153.vc8a_a_d87c0ce3

json-path-api:2.9.0-148.v22a_7ffe323ce

jsoup:1.21.1-52.v96e4041b_60fd

junit:1335.v6b_a_a_e18534e1

ldap:780.vcb_33c9a_e4332

mailer:509.vc54d23fc427e

matrix-auth:3.2.6

matrix-project:849.v0cd64ed7e531

maven-plugin:3.26

metrics:4.2.32-476.v5042e1c1edd7

mina-sshd-api-common:2.15.0-161.vb_200831a_c15b_

mina-sshd-api-core:2.15.0-161.vb_200831a_c15b_

okhttp-api:4.11.0-189.v976fa_d3379d6

oss-symbols-api:356.v2da_d59a_3742b_

pam-auth:1.12

pipeline-build-step:571.v08a_fffd4b_0ce

pipeline-github-lib:65.v203688e7727e

pipeline-graph-analysis:241.vc3d48fb_b_2582

pipeline-graph-view:588.v1efd7e219272

pipeline-groovy-lib:752.vdddedf804e72

pipeline-input-step:527.vd61b_1d3c5078

pipeline-milestone-step:138.v78ca_76831a_43

pipeline-model-api:2.2255.v56a_15e805f12

pipeline-model-definition:2.2255.v56a_15e805f12

pipeline-model-extensions:2.2255.v56a_15e805f12

pipeline-stage-step:322.vecffa_99f371c

pipeline-stage-tags-metadata:2.2255.v56a_15e805f12

plain-credentials:199.v9f8e1f741799

plugin-util-api:6.1.0

pubsub-light:1.19

resource-disposer:0.25

scm-api:704.v3ce5c542825a_

script-security:1373.vb_b_4a_a_c26fa_00

snakeyaml-api:2.3-125.v4d77857a_b_402

sse-gateway:1.28

ssh-credentials:359.v2191c4cf635f

ssh-slaves:3.1031.v72c6b_883b_869

structs:350.v3b_30f09f2363

theme-manager:294.vf2c2fd783821

timestamper:1.29

token-macro:444.v52de7e9c573d

trilead-api:2.209.v0e69b_c43c245

variant:70.va_d9f17f859e0

workflow-aggregator:608.v67378e9d3db_1

workflow-api:1373.v7b_813f10efa_b_

workflow-basic-steps:1079.vce64b_a_929c5a_

workflow-cps:4150.ve20ca_b_a_a_2815

workflow-durable-task-step:1431.v16e66c8a_58b_f

workflow-job:1540.v295eccc9778f

workflow-multibranch:806.vb_b_688f609ee9

workflow-scm-step:437.v05a_f66b_e5ef8

workflow-step-api:700.v6e45cb_a_5a_a_21

workflow-support:968.v8f17397e87b_8

ws-cleanup:0.48

```

3 attachments

- [jenkins-build-job.png](https://issues.jenkins.io/secure/attachment/64639/jenkins-build-job.png)
> ![jenkins-build-job.png](https://issues.jenkins.io/secure/attachment/64639/jenkins-build-job.png)
- [jenkins-build-job.txt](https://issues.jenkins.io/secure/attachment/64638/jenkins-build-job.txt)
- [jenkins-build.log](https://issues.jenkins.io/secure/attachment/64637/jenkins-build.log)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.