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

Git Client Plugin fails on git rev-parse - Merge before build feature

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Blocker Blocker
    • git-client-plugin
    • None

      It appears the git rev-parse command fails because it adds a / character to the prefix of the ref.

      In the 'branch to merge to' field I have tried origin/develop, /origin/develop, develop, /develop and neither of the four will work. When I try 'develop' the commands show as below

      11:24:42 FATAL: Command "/usr/bin/git rev-parse /develop^

      {commit}" returned status code 128:

      so to clarify (fails with / passes without it)

      fails: /usr/bin/git rev-parse /origin/develop

      succeeds : /usr/bin/git rev-parse origin/develop

      Notice the / . However this was not in the 'branch to merge to' label so this should not be included. If I remove / and run command manually it works. When I add the / it fails again. I think this is a bug in git client plugin.

      11:24:15 [EnvInject] - Loading node environment variables.
      11:24:15 Building remotely on [server] in workspace /var/lib/jenkins/ws/stparser-trigger-master/18
      11:24:15
      11:24:15 Deleting project workspace... Cloning the remote Git repository
      11:24:16 Cloning repository [scm url]:stparser.git
      11:24:16 > /usr/bin/git init /var/lib/jenkins/ws/stparser-trigger-master/18 # timeout=10
      11:24:16 Fetching upstream changes from [scm url]:stparser.git
      11:24:16 > /usr/bin/git --version # timeout=10
      11:24:16 > /usr/bin/git fetch --tags --progress [scm url]:stparser.git +refs/heads/:refs/remotes/origin/
      11:24:42 > /usr/bin/git config remote.origin.url [scm url]:stparser.git # timeout=10
      11:24:42 > /usr/bin/git config --add remote.origin.fetch +refs/heads/:refs/remotes/origin/ # timeout=10
      11:24:42 > /usr/bin/git config remote.origin.url [scm url]:stparser.git # timeout=10
      11:24:42 Fetching upstream changes from [scm url]:stparser.git
      11:24:42 > /usr/bin/git fetch --tags --progress [scm url]:stparser.git +refs/heads/:refs/remotes/origin/
      11:24:42 > /usr/bin/git rev-parse origin/master^{commit}

      # timeout=10
      11:24:42 Merging Revision e3fb8ab57804916f31655bbb0ede86415c7f4616 (origin/master) to /develop, UserMergeOptions

      {mergeRemote='', mergeTarget='develop', mergeStrategy='default', fastForwardMode='--no-ff'}

      11:24:42 > /usr/bin/git rev-parse /develop^{commit} # timeout=10
      11:24:42 FATAL: Command "/usr/bin/git rev-parse /develop^

      {commit}" returned status code 128:
      11:24:42 stdout: /develop^{commit}

      11:24:42
      11:24:42 stderr: fatal: ambiguous argument '/develop^

      {commit}': unknown revision or path not in the working tree.
      11:24:42 Use '--' to separate paths from revisions
      11:24:42
      11:24:42 hudson.plugins.git.GitException: Command "/usr/bin/git rev-parse /develop^{commit}

      " returned status code 128:
      11:24:42 stdout: /develop^

      {commit}
      11:24:42
      11:24:42 stderr: fatal: ambiguous argument '/develop^{commit}

      ': unknown revision or path not in the working tree.
      11:24:42 Use '--' to separate paths from revisions
      11:24:42
      11:24:42 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1591)
      11:24:42 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1567)
      11:24:42 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1563)
      11:24:42 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1249)
      11:24:42 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1261)
      11:24:42 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.revParse(CliGitAPIImpl.java:622)
      11:24:42 at hudson.plugins.git.GitAPI.revParse(GitAPI.java:316)
      11:24:42 at sun.reflect.GeneratedMethodAccessor403.invoke(Unknown Source)
      11:24:42 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      11:24:42 at java.lang.reflect.Method.invoke(Method.java:606)
      11:24:42 at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:326)
      11:24:42 at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:301)
      11:24:42 at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:260)
      11:24:42 at hudson.remoting.UserRequest.perform(UserRequest.java:121)
      11:24:42 at hudson.remoting.UserRequest.perform(UserRequest.java:49)
      11:24:42 at hudson.remoting.Request$2.run(Request.java:325)
      11:24:42 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
      11:24:42 at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      11:24:42 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      11:24:42 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      11:24:42 at java.lang.Thread.run(Thread.java:745)
      11:24:42 at ......remote call to contint3(Native Method)
      11:24:42 at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1361)
      11:24:42 at hudson.remoting.UserResponse.retrieve(UserRequest.java:221)
      11:24:42 at hudson.remoting.Channel.call(Channel.java:753)
      11:24:42 at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:179)
      11:24:42 at com.sun.proxy.$Proxy55.revParse(Unknown Source)
      11:24:42 at org.jenkinsci.plugins.gitclient.RemoteGitImpl.revParse(RemoteGitImpl.java:546)
      11:24:42 at hudson.plugins.git.extensions.impl.PreBuildMerge.decorateRevisionToBuild(PreBuildMerge.java:64)
      11:24:42 at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:925)
      11:24:42 at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1017)
      11:24:42 at hudson.scm.SCM.checkout(SCM.java:485)
      11:24:42 at hudson.model.AbstractProject.checkout(AbstractProject.java:1282)
      11:24:42 at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
      11:24:42 at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
      11:24:42 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
      11:24:42 at hudson.model.Run.execute(Run.java:1744)
      11:24:42 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      11:24:42 at hudson.model.ResourceController.execute(ResourceController.java:98)
      11:24:42 at hudson.model.Executor.run(Executor.java:374)
      11:24:42 [BFA] Scanning build for known causes...
      11:24:42 [BFA] No failure causes found
      11:24:42 [BFA] Done. 0s
      11:24:42 Notifying upstream projects of job completion
      11:24:42 Warning: you have no plugins providing access control for builds, so falling back to legacy behavior of permitting any downstream builds to be triggered
      11:24:42 Finished: FAILURE

            ndeloof Nicolas De Loof
            phxazusa1 Matt Evans
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: