jenkinsci / jenkinsci/git-plugin
[JENKINS-64000] Git tag setting ignored by repository fetch in multibranch project created by GitHub org folder
- Dominant language
- Java
- Stars
- 694
- Forks
- 1.1k
- Avg merge
- 1h 29m
- Merged PRs (30d)
- 3
Description
As requested in allowSecondFetch ** documentation I am opening a ticket.
After upgrading git plugin to version 4.4.4 (can't recall the previous version), my Jenkins job started to fail on the checkout step because it requires the version tags, defined as bellow:
stage('Checkout') {
retry(3) {
scmvars = checkout([
$class : 'GitSCM',
branches : scm.branches,
doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
extensions : scm.extensions +
[$class: 'CloneOption', noTags: false, reference: '~/git/service-sourcing/', shallow: false] +
[$class: 'LocalBranch', localBranch: "**"] +
[$class: 'UserIdentity', email: 'dev@nezasa.com', name: 'Jenkins CI'],
userRemoteConfigs: scm.userRemoteConfigs
])
}
}
Before the update the job used to output this during checkout:
**
```
05:16:32 > git fetch --no-tags --force --progress -- git@github.com:nezasa/tb-service-sourcing.git +refs/heads/develop:refs/remotes/origin/develop +refs/heads/*:refs/remotes/origin/* # timeout=10
05:16:35 Fetching without tags
05:16:35 > git config remote.origin.url git@github.com:nezasa/tb-service-sourcing.git # timeout=10
05:16:35 > git config --add remote.origin.fetch +refs/heads/develop:refs/remotes/origin/develop # timeout=10
05:16:35 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
05:16:35 > git config remote.origin.url git@github.com:nezasa/tb-service-sourcing.git # timeout=10
05:16:35 Fetching upstream changes from git@github.com:nezasa/tb-service-sourcing.git
05:16:35 using GIT_SSH to set credentials Github SSH Key for common libraries access
05:16:35 > git fetch --tags --force --progress -- git@github.com:nezasa/tb-service-sourcing.git +refs/heads/develop:refs/remotes/origin/develop +refs/heads/*:refs/remotes/origin/* # timeout=10
```
After the update the output is (Git is now Avoiding second fetch):
**
```
05:16:59 > git fetch --no-tags --force --progress -- git@github.com:nezasa/tb-service-sourcing.git +refs/heads/develop:refs/remotes/origin/develop +refs/heads/*:refs/remotes/origin/* # timeout=10
05:17:01 Avoid second fetch
05:17:01 Checking out Revision 68628022e4553cacb97377dfd35d54c3d3d3734f (develop)
05:17:01 > git config remote.origin.url git@github.com:nezasa/tb-service-sourcing.git # timeout=10
05:17:01 > git config --add remote.origin.fetch +refs/heads/develop:refs/remotes/origin/develop # timeout=10
05:17:01 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
05:17:01 > git config core.sparsecheckout # timeout=10
05:17:01 > git checkout -f 68628022e4553cacb97377dfd35d54c3d3d3734f # timeout=10
05:17:01 > git branch -a -v --no-abbrev # timeout=10
05:17:02 > git checkout -b develop 68628022e4553cacb97377dfd35d54c3d3d3734f # timeout=10
```
Adding allowSecondFetch flag and setting it to true on the global settings seems to fix the issue but I was expecting that the Advanced Clone Setting on the job would be enough.
---
Originally reported by jose_pedro_sa, imported from: Git tag setting ignored by repository fetch in multibranch project created by GitHub org folder
Raw content of original issue
As requested in allowSecondFetch ** documentation I am opening a ticket.
After upgrading git plugin to version 4.4.4 (can't recall the previous version), my Jenkins job started to fail on the checkout step because it requires the version tags, defined as bellow:
stage('Checkout') {
retry(3) {
scmvars = checkout([
$class : 'GitSCM',
branches : scm.branches,
doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
extensions : scm.extensions +
[$class: 'CloneOption', noTags: false, reference: '~/git/service-sourcing/', shallow: false] +
[$class: 'LocalBranch', localBranch: "**"] +
[$class: 'UserIdentity', email: 'dev@nezasa.com', name: 'Jenkins CI'],
userRemoteConfigs : scm.userRemoteConfigs
])
}
}
Before the update the job used to output this during checkout:
**05:16:32 > git fetch --no-tags --force --progress -- git@github.com:nezasa/tb-service-sourcing.git +refs/heads/develop:refs/remotes/origin/develop +refs/heads/*:refs/remotes/origin/* # timeout=10
05:16:35 Fetching without tags
05:16:35 > git config remote.origin.url git@github.com:nezasa/tb-service-sourcing.git # timeout=10
05:16:35 > git config --add remote.origin.fetch +refs/heads/develop:refs/remotes/origin/develop # timeout=10
05:16:35 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
05:16:35 > git config remote.origin.url git@github.com:nezasa/tb-service-sourcing.git # timeout=10
05:16:35 Fetching upstream changes from git@github.com:nezasa/tb-service-sourcing.git
05:16:35 using GIT_SSH to set credentials Github SSH Key for common libraries access
05:16:35 > git fetch --tags --force --progress -- git@github.com:nezasa/tb-service-sourcing.git +refs/heads/develop:refs/remotes/origin/develop +refs/heads/*:refs/remotes/origin/* # timeout=10
After the update the output is (Git is now Avoiding second fetch):
**05:16:59 > git fetch --no-tags --force --progress -- git@github.com:nezasa/tb-service-sourcing.git +refs/heads/develop:refs/remotes/origin/develop +refs/heads/*:refs/remotes/origin/* # timeout=10
05:17:01 Avoid second fetch
05:17:01 Checking out Revision 68628022e4553cacb97377dfd35d54c3d3d3734f (develop)
05:17:01 > git config remote.origin.url git@github.com:nezasa/tb-service-sourcing.git # timeout=10
05:17:01 > git config --add remote.origin.fetch +refs/heads/develop:refs/remotes/origin/develop # timeout=10
05:17:01 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
05:17:01 > git config core.sparsecheckout # timeout=10
05:17:01 > git checkout -f 68628022e4553cacb97377dfd35d54c3d3d3734f # timeout=10
05:17:01 > git branch -a -v --no-abbrev # timeout=10
05:17:02 > git checkout -b develop 68628022e4553cacb97377dfd35d54c3d3d3734f # timeout=10
Adding allowSecondFetch flag and setting it to true on the global settings seems to fix the issue but I was expecting that the Advanced Clone Setting on the job would be enough.
environment
```
Jenkins 2.249.2
Git plugin 4.4.4
```
2 attachments
- [image-2020-10-22-16-06-51-619.png](https://issues.jenkins.io/secure/attachment/53018/image-2020-10-22-16-06-51-619.png)
> 
- [image-2022-10-29-13-50-43-749.png](https://issues.jenkins.io/secure/attachment/59388/image-2022-10-29-13-50-43-749.png)
> 
Contributor guide
Assessment
This issue has not been assessed yet.