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.

Reply via email to