Thanks Mark.  Command line build runs fine w/o compile errors.  For your 
reference, this is a known Eclipse issue 
bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=369592.

On Wednesday, December 30, 2015 at 10:34:59 AM UTC-7, Mark Waite wrote:
>
> 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] 
> <javascript:>> 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] <javascript:>.
>> 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/1c1e2130-af93-4e50-af85-4a4632af8d74%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to