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

Git publisher fails with "Invalid id: origin/master" when trying to publish changes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • git-plugin
    • None
    • Linux master server executing job on master server

      Using the git plugin to publish a merged change to a central repository previously was successful. With the 1.2.0 version of the git plugin it is no longer able to push changes to the central repository after they have merged and are successfully built.

      The stack trace reports:

      Commencing build of Revision 363396d76a09a12a2f4b5d94fb4e9981e05ad4a9 (origin/proposals)
      Merging Revision 363396d76a09a12a2f4b5d94fb4e9981e05ad4a9 (origin/proposals) onto master
      FATAL: Invalid id: origin/master
      java.lang.IllegalArgumentException: Invalid id: origin/master
      at org.eclipse.jgit.lib.ObjectId.fromString(ObjectId.java:232)
      at hudson.plugins.git.GitSCM.computeMergeChangeLog(GitSCM.java:1331)
      at hudson.plugins.git.GitSCM.access$1200(GitSCM.java:57)
      at hudson.plugins.git.GitSCM$3.invoke(GitSCM.java:1188)
      at hudson.plugins.git.GitSCM$3.invoke(GitSCM.java:1133)
      at hudson.FilePath.act(FilePath.java:852)
      at hudson.FilePath.act(FilePath.java:834)
      at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1133)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)
      at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:590)
      at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:495)
      at hudson.model.Run.execute(Run.java:1502)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:237)

      Steps to recreate the problem:

      • configure a Git repository into which the Jenkins user can push changes
      • create a "master" branch and a "proposals" branch on the Git repository
      • define a Jenkins job which clones the Git repository with ssh protocol
      • configure the Jenkins job git plugin to merge from */proposals and */master branches to the "master-proposals" branch
      • define a post build action to push the resulting merge to the origin/master branch
      • Submit a change to the central git repository on the "proposals" branch
      • Run the Jenkins job to confirm it will combine the master and proposals branches
      • Confirm the Jenkins job fails to push the combined change
        = IllegalArgumentException because JGit cannot convert "origin/master" into a SHA1, while the older git plugin ObjectId implementation seemed to make that conversion successfully.

      Refer to merge-proposals.xml for the job definition I used in my tests.

            ndeloof Nicolas De Loof
            markewaite Mark Waite
            Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: