jenkinsci / jenkinsci/git-plugin

[JENKINS-43754] Global pipeline library & simple 'checkout scm' rebuilds each polling cycle

Open
#3,084 7 comments 0 reactions 0 assignees View on GitHub
component:git-plugin imported-jira-issue priority:major resolution:unresolved
Dominant language
Java
Stars
694
Forks
1.1k
Avg merge
1h 29m
Merged PRs (30d)
3

Description

Simple 'checkout scm' with polling defined will always detect changes even when there are no changes. May be related to the added complexity from multiple repositories being polled (since the example job definition uses a global pipeline library).

More complicated checkout does not have the same issue.

Steps I took to duplicate the problem:



  1. Copy JDK 8 tar file into my public_html/jdk directory

      $ mkdir -p ~/public_html/jdk/
    
    $ cp jdk-8u131-linux-*tar.gz ~/public_html/jdk/

  2. Copy the jenkins-bugs repo into a local bare repo for faster cloning later

      $ mkdir -p ~/git/bare/bugs/
    
    $ cd ~/git/bare/bugs/
    $ git clone --mirror https://github.com/MarkEWaite/jenkins-bugs

  3. Clone, build, and run the docker instance

      $ git lfs clone https://github.com/MarkEWaite/docker-lfs JENKINS-43754
    
    $ cd JENKINS-43754
    $ git lfs fetch origin origin/lts-with-plugins
    $ git checkout -b lts-with-plugins origin/lts-with-plugins
    $ docker build -t jenkins:JENKINS-43754 .
    $ VOL1=~/public_html:/var/jenkins_home/userContent/
    $ VOL2=~/git/bare:/var/lib/git/mwaite/
    $ docker run -i --rm --publish 8080:8080 --volume $VOL1 --volume $VOL2 jenkins:JENKINS-43687

  4. Connect a web browser to that docker instance (http://localhost:8080)

  5. Open the "Bugs - Pipeline Checks" folder

  6. Open the "jenkins-bugs" multi-branch pipeline job

  7. Click the "Scan Multibranch Pipeline" link and then the "Run Now" link to start branch indexing

  8. Confirm the JENKINS-43687 job runs successfully

  9. Commit a change to the JENKINS-43687 branch, and push the change

      $ git clone https://github.com/MarkEWaite/jenkins-bugs
    
    $ cd jenkins-bugs
    $ git checkout -b JENKINS-43754 -t origin/JENKINS-43754
    $ ant increment
    $ git push

  10. Wait 7 minutes while watching the git polling log, confirm the job runs without a change, if the simple checkout scm is used, and does not run without changes if the more complex checkout is used

---
Originally reported by markewaite, imported from: Global pipeline library & simple 'checkout scm' rebuilds each polling cycle


  • status: Open
  • priority: Major
  • component(s): git-plugin
  • resolution: Unresolved
  • votes: 2
  • watchers: 3
  • imported: 2025-12-02

Raw content of original issue

Simple 'checkout scm' with polling defined will always detect changes even when there are no changes. May be related to the added complexity from multiple repositories being polled (since the example job definition uses a global pipeline library).

More complicated checkout does not have the same issue.

Steps I took to duplicate the problem:



  1. Copy JDK 8 tar file into my public_html/jdk directory

      $ mkdir -p ~/public_html/jdk/
    
    $ cp jdk-8u131-linux-*tar.gz ~/public_html/jdk/


  2. Copy the jenkins-bugs repo into a local bare repo for faster cloning later

      $ mkdir -p ~/git/bare/bugs/
    
    $ cd ~/git/bare/bugs/
    $ git clone --mirror https://github.com/MarkEWaite/jenkins-bugs


  3. Clone, build, and run the docker instance

      $ git lfs clone https://github.com/MarkEWaite/docker-lfs JENKINS-43754
    
    $ cd JENKINS-43754
    $ git lfs fetch origin origin/lts-with-plugins
    $ git checkout -b lts-with-plugins origin/lts-with-plugins
    $ docker build -t jenkins:JENKINS-43754 .
    $ VOL1=~/public_html:/var/jenkins_home/userContent/
    $ VOL2=~/git/bare:/var/lib/git/mwaite/
    $ docker run -i --rm --publish 8080:8080 --volume $VOL1 --volume $VOL2 jenkins:JENKINS-43687


  4. Connect a web browser to that docker instance (http://localhost:8080)

  5. Open the "Bugs - Pipeline Checks" folder

  6. Open the "jenkins-bugs" multi-branch pipeline job

  7. Click the "Scan Multibranch Pipeline" link and then the "Run Now" link to start branch indexing

  8. Confirm the JENKINS-43687 job runs successfully

  9. Commit a change to the JENKINS-43687 branch, and push the change

      $ git clone https://github.com/MarkEWaite/jenkins-bugs
    
    $ cd jenkins-bugs
    $ git checkout -b JENKINS-43754 -t origin/JENKINS-43754
    $ ant increment
    $ git push


  10. Wait 7 minutes while watching the git polling log, confirm the job runs without a change, if the simple checkout scm is used, and does not run without changes if the more complex checkout is used


environment

```
Refer to docker image referenced in description

git plugin 3.3.0

git client plugin 2.4.2
```

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.