Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-35104

git plugin still checks out all branches when refspec set

XMLWordPrintable

      We are getting a lot of these errors:

      ERROR: Error fetching remote repo 'origin'
      hudson.plugins.git.GitException: Failed to fetch from git@gitlab:xxx/main.git
      at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:810)
      at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1066)
      at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1097)
      at hudson.scm.SCM.checkout(SCM.java:485)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:1269)
      at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:607)
      at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
      at com.tikal.jenkins.plugins.multijob.MultiJobBuild$MultiJobRunnerImpl.run(MultiJobBuild.java:136)
      at hudson.model.Run.execute(Run.java:1738)
      at com.tikal.jenkins.plugins.multijob.MultiJobBuild.run(MultiJobBuild.java:73)
      at hudson.model.ResourceController.execute(ResourceController.java:98)
      at hudson.model.Executor.run(Executor.java:410)
      Caused by: hudson.plugins.git.GitException: Command "/home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git -c core.askpass=true fetch --no-tags --progress git@gitlab.xxx.com:xxx/main.git +refs/heads/master:refs/remotes/origin/master" returned status code 128:
      stdout:
      stderr: error: refs/remotes/origin/xxxx does not point to a valid object!
      .....
      fatal: pack has 120 unresolved deltas
      fatal: index-pack failed

      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1719)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1463)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:63)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:314)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:152)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:145)
      at hudson.remoting.UserRequest.perform(UserRequest.java:120)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:332)
      at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at hudson.remoting.Engine$1$1.run(Engine.java:85)
      at java.lang.Thread.run(Thread.java:745)
      at ......remote call to build133(Native Method)
      at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1416)
      at hudson.remoting.UserResponse.retrieve(UserRequest.java:220)
      at hudson.remoting.Channel.call(Channel.java:781)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:145)
      at sun.reflect.GeneratedMethodAccessor267.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:131)
      at com.sun.proxy.$Proxy47.execute(Unknown Source)
      at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:808)
      ... 12 more
      ERROR: null

      So I set the Refspec to +refs/heads/master:refs/remotes/origin/master
      But when it does a fresh checkout (clean workspace), the plugin does this:

      Notice: +refs/heads/:refs/remotes/origin/

      Cloning the remote Git repository
      Avoid fetching tags
      Cloning repository git@gitlab.cj.com:cjdev/main.git
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git init /home/cruise/workspace/Start # timeout=10
      Fetching upstream changes from git@gitlab.cj.com:cjdev/main.git
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git --version # timeout=10
      using GIT_SSH to set credentials
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git -c core.askpass=true fetch --no-tags --progress git@gitlab.cj.com:cjdev/main.git +refs/heads/:refs/remotes/origin/
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git config remote.origin.url git@gitlab.cj.com:cjdev/main.git # timeout=10
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git config --add remote.origin.fetch +refs/heads/:refs/remotes/origin/ # timeout=10
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git config remote.origin.url git@gitlab.cj.com:cjdev/main.git # timeout=10
      Fetching upstream changes from git@gitlab.cj.com:cjdev/main.git
      using GIT_SSH to set credentials
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git -c core.askpass=true fetch --no-tags --progress git@gitlab.cj.com:cjdev/main.git +refs/heads/master:refs/remotes/origin/master
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git rev-parse refs/remotes/origin/master^

      {commit} # timeout=10
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git rev-parse refs/remotes/origin/refs/heads/master^{commit}

      # timeout=10
      Checking out Revision b1232ff60185766b8b94dabcc20f147e25ae9aab (refs/remotes/origin/master)
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git config core.sparsecheckout # timeout=10
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git checkout -f b1232ff60185766b8b94dabcc20f147e25ae9aab
      > /home/cruise/tools/hudson.plugins.git.GitTool/git-2.7.1/git rev-list 96dd700f85eb3dc07319d302e930053774c86bfc # timeout=10

      which I think is what is causing the error when anything from the origin disappears.

      Using latest of git plugin, and shared library plugin.

            Unassigned Unassigned
            allon Allon Bendavid
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: