https://jenkins.ci.cloudbees.com/job/plugins/job/git-plugin/ (and my internal Jenkins server inside my firewall) confirm that the code on the master branch compiles correctly from the maven command line.
I run my debugger from Netbeans (rather than Eclipse) and can confirm that it compiles and runs from Netbeans as well. I don't use Eclipse, so I'm not much help wiht Eclipse specific failures. Mark Waite On Wed, Dec 30, 2015 at 8:31 AM Michael Giroux <[email protected]> wrote: > BTW, the following patch resolves my compile errors, but not sure if the > cast to (Item) is the best choice. > > diff --git a/src/test/java/hudson/plugins/git/GitSCMTest.java > b/src/test/java/hudson/plugins/git/GitSCMTest.java > index 3a14b10..a39e60c 100644 > --- a/src/test/java/hudson/plugins/git/GitSCMTest.java > +++ b/src/test/java/hudson/plugins/git/GitSCMTest.java > @@ -1203,7 +1203,7 @@ > false, > Collections.<SubmoduleConfig>emptyList(), > browser, null, null); > p.setScm(scm); > - configRoundtrip(p); > + configRoundtrip((Item)p); > assertEqualDataBoundBeans(scm,p.getScm()); > assertEquals("Wrong key", "git " + url, scm.getKey()); > } > @@ -1215,7 +1215,7 @@ > FreeStyleProject p = createFreeStyleProject(); > GitSCM scm = new GitSCM("https://github.com/jenkinsci/jenkins"); > p.setScm(scm); > - configRoundtrip(p); > + configRoundtrip((Item)p); > assertEqualDataBoundBeans(scm,p.getScm()); > } > > > > On Wednesday, December 30, 2015 at 10:29:37 AM UTC-7, Michael Giroux wrote: >> >> Not making any changes to code, just trying to examine primary project >> source to understand what is being changed in the PRs. >> I cloned the primary git repo from >> https://github.com/jenkinsci/git-plugin.git so I could get some context >> for the PRs which show only the code being changed. Getting compile errors >> on unmodified project. >> >> Eclipse version 4.5 (Mars), JDK 1.8.0 (also tried JDK 1.7.0) >> >> >> On Wednesday, December 30, 2015 at 9:53:36 AM UTC-7, Mark Waite wrote: >>> >>> Don't attempt to evaluate the two pull requests in the same repository. >>> They are two different ideas that might meet your need. I suspect that one >>> or the other will eventually be merged, but not both. >>> >>> Mark Waite >>> >>> On Wed, Dec 30, 2015 at 7:21 AM Michael Giroux <[email protected]> >>> wrote: >>> >>>> Mark, I'm taking a look at the two pull requests. I cloned the repo so >>>> I can view code in Eclipse, but I'm getting compile errors in >>>> GitSCMTest.java: >>>> >>>> Description Resource Path Location Type >>>> The method configRoundtrip(FreeStyleProject) is ambiguous for the type >>>> GitSCMTest GitSCMTest.java /git/src/test/java/hudson/plugins/git line >>>> 1206 Java Problem >>>> >>>> Suggestions? >>>> >>>> Michael >>>> >>>> On Tuesday, December 29, 2015 at 10:47:14 PM UTC-7, Mark Waite wrote: >>>> >>>>> There is a pending pull request to the git plugin which provides a new >>>>> environment variable, GIT_SHORT_BRANCH_NAME. The semantics of that >>>>> proposed environment variable are not quite what you're describing, but >>>>> you >>>>> might review the pull request to see if it is close enough for your use >>>>> case. See https://github.com/jenkinsci/git-plugin/pull/347 and >>>>> https://github.com/jenkinsci/git-plugin/pull/304 for two different >>>>> possibilities. >>>>> >>>>> Mark Waite >>>>> >>>>> On Tue, Dec 29, 2015 at 8:36 PM Michael Giroux <[email protected]> >>>>> wrote: >>>>> >>>> Yes. >>>>>> >>>>>> The issue I'm describing is a result of using the Git Parameter >>>>>> plugin which allows the user to select a branch, + the Git plugin which >>>>>> allows configuration of the branch to build and the local branch name, + >>>>>> maven release plugin which relies on local branch name for push to >>>>>> remote + >>>>>> Stash Webhook to Jenkins with triggers a build of any arbitrary branch. >>>>>> >>>>>> I will admit that one solution is to create two jobs in Jenkins to >>>>>> allow building of any arbitrary branch as triggered by the Stash web hook >>>>>> for jenkins, and a second job that is configured to build a branch >>>>>> specified by user supplied parameter values. >>>>>> >>>>>> The problem occurs when when attempting to configure a single jenkins >>>>>> build that allows for manual specification of branch via the Git >>>>>> parameter, >>>>>> and builds kicked off by the Stash web hook to jenkins. >>>>>> >>>>>> 1. to allow the jenkins web hook to initiate a build, it is necessary >>>>>> to configure the build to build any branch (leaving branch to build as >>>>>> blank). >>>>>> 2. to allow a maven release to build, you MUST specify a local branch >>>>>> name. Otherwise, the push to stash fails the build does not have a local >>>>>> branch name. >>>>>> 3. To meet condittion #1, the default value for the Git parameter >>>>>> must be "**" so that the branch to build is ANY (** or empty) >>>>>> >>>>>> So basically, the issue is that if a build is configured to build any >>>>>> branch, and also has maven release configured, you need some way to get >>>>>> the >>>>>> code checked out to a local branch (additional behaviors) with the same >>>>>> name as the branch being built, and there is currently no way to do that. >>>>>> >>>>>> I tried to put "${GIT_BRANCH/*\//}" into the "checkout to local >>>>>> branch" but this did not work. It seems this field does not resolve >>>>>> environment variable references using full bash variable reference >>>>>> notation. Perhaps this is the solution. Extend the "checkout to local >>>>>> branch" to provide full bash resolution of the variable name. >>>>>> >>>>>> >>>>>> On Tuesday, December 29, 2015 at 10:03:25 AM UTC-7, Michael Giroux >>>>>> wrote: >>>>>>> >>>>>>> Using Jenkins 1.609.3, Git plugin 2.4.0. >>>>>>> >>>>>>> We have configured most of our jobs to allow jobs to be initiated by >>>>>>> the Stash Webhook to Jenkins. To allow developers to manually initiate >>>>>>> a >>>>>>> build of any branch, the jobs use the Git Parameter to set a BRANCH >>>>>>> variable. >>>>>>> >>>>>>> Using this configuration, the Git Parameter is configured to set >>>>>>> "**" as the default branch to build. This allows the Stash Webhook to >>>>>>> initiate a build of any branch. In order to allow the job to perform a >>>>>>> maven release, we have configured the Git SCM to checkout to local >>>>>>> branch >>>>>>> "master". This all works well as long as we are not doing a maven >>>>>>> release, >>>>>>> or when we do a maven release on the master branch. The strategy breaks >>>>>>> down if the developer attempts a maven release on another branch when >>>>>>> the >>>>>>> maven release:prepare goal tries to push pom updates. Note that the >>>>>>> maven >>>>>>> release plugin uses the current local branch in the push as "git push >>>>>>> url >>>>>>> localBranch:localBranch" As a result, when the build is for >>>>>>> "some_branch" >>>>>>> which has been checked out to local branch "master" we get an error on >>>>>>> "git >>>>>>> push ... master:master" because the remote "master" is not in sync with >>>>>>> the >>>>>>> local. No surprises here since the local "master" is actually >>>>>>> "some_branch". >>>>>>> >>>>>>> To resolve this, we have deleted the "checkout to local branch" >>>>>>> additional action, and added a pre-build step that does the following:' >>>>>>> # checkout to a local branch using the remote branch name >>>>>>> LOCAL_GIT_BRANCH=${GIT_BRANCH/*\//} >>>>>>> git rev-parse --quiet --verify ${LOCAL_GIT_BRANCH} && git branch -D >>>>>>> ${LOCAL_GIT_BRANCH} >>>>>>> git checkout -b ${LOCAL_GIT_BRANCH} ${GIT_COMMIT} >>>>>>> >>>>>>> With this in place, the build checks the code out to a local branch >>>>>>> with the same name as the remote branch allowing the maven >>>>>>> release:prepare >>>>>>> goal to push changes to the branch that is being build. >>>>>>> >>>>>>> NOTE that we have tried to configure the "checkout to local branch" >>>>>>> using the property that is configured by the Git ($BRANCH) but that >>>>>>> results >>>>>>> in local branch names of "origin/master", "origin/some_branch", ... >>>>>>> This >>>>>>> results in release:prepare doing pushes as "git push ... >>>>>>> origin/some_branch:origin/some_branch" which results in a new remote >>>>>>> branch >>>>>>> named "origin/some_branch" We have seen repos with branches named >>>>>>> "origin/master". As a result, the desired branch is not updated, and a >>>>>>> new >>>>>>> branch is created. >>>>>>> >>>>>>> QUESTION/SUGGESTION/... >>>>>>> It would be nice to have an option in the Git plugin to "checkout to >>>>>>> local branch" that derives the local branch name from the remote branch >>>>>>> name, without having to add our pre-build step. Thus, if I select >>>>>>> "origin/some_branch" from the Git parameter, I could checkout to local >>>>>>> branch using the Git Parameter $BRANCH which would resolve to >>>>>>> "some_branch" >>>>>>> sans the "origin/" prefix. >>>>>>> >>>>>>> Steps to Reproduce: >>>>>>> 1. configure a parameterized job with a git parameter using "BRANCH" >>>>>>> as the parameter name >>>>>>> 2. configure the Git scm additional behavour to checkout to local >>>>>>> branch "$BRANCH" >>>>>>> 3. configure job with as a maven release. >>>>>>> 4. perform a maven releae, selecting one of the branches from the >>>>>>> list of Git Parameter options. >>>>>>> 5. observe console output to examine the "git push" commands >>>>>>> generated by the release:prepare goal. >>>>>>> >>>>>>> >>>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Jenkins Users" group. >>>>>> >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>>> an email to [email protected]. >>>>> >>>>> >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/jenkinsci-users/37f6bc2d-d43e-44ff-a877-c525e5007842%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/jenkinsci-users/37f6bc2d-d43e-44ff-a877-c525e5007842%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Jenkins Users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/jenkinsci-users/cbaf764b-e3d9-480e-980c-23b772fd4a43%40googlegroups.com >>>> <https://groups.google.com/d/msgid/jenkinsci-users/cbaf764b-e3d9-480e-980c-23b772fd4a43%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- > You received this message because you are subscribed to the Google Groups > "Jenkins Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-users/25050720-c0f3-465d-bc83-4d191c1c7bf6%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-users/25050720-c0f3-465d-bc83-4d191c1c7bf6%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtGQbSFqm%2B9_-Yfm%3DCe%3D2Cr8KGQ8WbtCeiOCSjwWztGD5g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
