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

Missing "Integrate Branch" from feature branch builds

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • svnmerge-plugin
    • CentOS 6, Jenkins 1.595, svnmerge plugin 2.4, Java 1.7.0_71

      There is no "Integrate Branch" action in any of feature branches' builds. The following are from `svn info`:

      dev1:
      Path: .
      Working Copy Root Path: /var/lib/jenkins/jobs/xxxx-dev1/workspace
      URL: https://192.168.3.15/svn/xxxx/branches/dev1
      Repository Root: https://192.168.3.15/svn/xxxx
      Repository UUID: d0eb5361-05ce-7c4b-8453-cbb3c9b96fe4
      Revision: 131
      Node Kind: directory
      Schedule: normal

      trunk:
      Path: .
      Working Copy Root Path: /var/lib/jenkins/jobs/xxxx/workspace
      URL: https://192.168.3.15/svn/xxxx/trunk
      Repository Root: https://192.168.3.15/svn/xxxx
      Repository UUID: d0eb5361-05ce-7c4b-8453-cbb3c9b96fe4
      Revision: 129
      Node Kind: directory
      Schedule: normal

      What I've done was create a Jenkins job for the trunk. Then create a the dev1
      branch in Feature Branches. Then make a change to the README.md, perform a build,
      all on dev1. Then go to last build. Yet can't see the Integrate Branch action.

      Not sure if it's related, I've tried adding the Integrate to upstream upon successful build post-build action,
      and got an exception at the end of a (successful) build:

      ERROR: Publisher jenkins.plugins.svnmerge.IntegrationPublisher aborted due to exception
      java.lang.NullPointerException
      at jenkins.plugins.svnmerge.IntegrateAction.perform(IntegrateAction.java:183)
      at jenkins.plugins.svnmerge.IntegrateAction.perform(IntegrateAction.java:172)
      at jenkins.plugins.svnmerge.IntegrationPublisher.perform(IntegrationPublisher.java:51)
      at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:32)
      at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770)
      at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734)
      at hudson.model.Build$BuildExecution.post2(Build.java:183)
      at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683)
      at hudson.model.Run.execute(Run.java:1784)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      at hudson.model.ResourceController.execute(ResourceController.java:89)
      at hudson.model.Executor.run(Executor.java:240)

      I've double checked the Upstream project name is correct. Also, the branch job is created with "Feature Branch".

      In the "Configure" of branch job:
      "This project builds a Subversion feature branch" is checked;
      "Upstream project name" is "xxxx".

      In the Status page of branch job:
      "Subversion Merge Tracking
      This project is a feature branch of xxxx"

      Clicking the job link goes to the master job "xxxx", as expected.

      In the "Configure" of master job:
      "Accept Integration from Subversion feature branches" is checked.

      In the "Feature Branches" of master job:
      "Existing Feature Branches
      xxxx-dev1"

      Clicking the job name goes to the branch job, as expected.

      The svn repo is a fresh one, just for trying out the Jenkins. There is no other sources in it.

      I've double checked with:
      svn propget svn:externals
      Which returns empty.

          [JENKINS-26280] Missing "Integrate Branch" from feature branch builds

          Jackey Cheung created issue -

          Hugues Chabot added a comment - - edited

          How many Subversion modules does the feature branch have ?

          Hugues Chabot added a comment - - edited How many Subversion modules does the feature branch have ?

          Jackey Cheung added a comment -

          There is only one branch.

          History:
          I've created a dev (not dev1) branch back then, and couldn't see the Integrate button. So I've deleted it, and do it again, created the dev1 branch.

          Jackey Cheung added a comment - There is only one branch. History: I've created a dev (not dev1) branch back then, and couldn't see the Integrate button. So I've deleted it, and do it again, created the dev1 branch.

          Hugues Chabot added a comment -

          I did some investigation and I found that Integration Action does not work if the feature branch job has more that one Subversion modules.

          If the job that builds your feature branch has more than one module. Then it is the cause of this issue. I just wanted to confirm that.

          Hugues Chabot added a comment - I did some investigation and I found that Integration Action does not work if the feature branch job has more that one Subversion modules. If the job that builds your feature branch has more than one module. Then it is the cause of this issue. I just wanted to confirm that.

          Jackey Cheung added a comment - - edited

          Not sure if I get it right, are you concerning about svn:externals?

          If it's the repo itself, I've just created a fresh repo, make some directories in it (src, build, etc.), and put them all to trunk. Then I created the feature branch from within the Jenkins plugin.

          Inside "Feature Branches" of the master job, I see this: "Detected repository layout: single project layout".

          Jackey Cheung added a comment - - edited Not sure if I get it right, are you concerning about svn:externals? If it's the repo itself, I've just created a fresh repo, make some directories in it (src, build, etc.), and put them all to trunk. Then I created the feature branch from within the Jenkins plugin. Inside "Feature Branches" of the master job, I see this: "Detected repository layout: single project layout".

          Hugues Chabot added a comment -

          No, I am not concerned about svn:externals this time.

          Jenkins Subversion plugin allows to configure more than one modules. This can be checked in the configuration page, under Source Code Management section.

          Hugues Chabot added a comment - No, I am not concerned about svn:externals this time. Jenkins Subversion plugin allows to configure more than one modules. This can be checked in the configuration page, under Source Code Management section.

          Jackey Cheung added a comment -

          Here's the scm config:

          Master Job:
          Repository URL: https://192.168.3.15/svn/xxxx/trunk
          Credentials: xxxx
          Local module directory: . (it's a single dot)
          Repository depth: infinity
          Ignore externals: checked
          Check-out Strategy: Use 'svn update' as much as possible, with 'svn revert' before update
          Repository browser: Auto

          Feature Branch Job:
          Repository URL: https://192.168.3.15/svn/xxxx/branches/dev1
          Credentials: xxxx
          Local module directory: . (it's a single dot)
          Repository depth: infinity
          Ignore externals: checked
          Check-out Strategy: Use 'svn update' as much as possible, with 'svn revert' before update
          Repository browser: Auto

          That's all, nothing else is set, no module, no additional credential.

          Jackey Cheung added a comment - Here's the scm config: Master Job: Repository URL: https://192.168.3.15/svn/xxxx/trunk Credentials: xxxx Local module directory: . (it's a single dot) Repository depth: infinity Ignore externals: checked Check-out Strategy: Use 'svn update' as much as possible, with 'svn revert' before update Repository browser: Auto Feature Branch Job: Repository URL: https://192.168.3.15/svn/xxxx/branches/dev1 Credentials: xxxx Local module directory: . (it's a single dot) Repository depth: infinity Ignore externals: checked Check-out Strategy: Use 'svn update' as much as possible, with 'svn revert' before update Repository browser: Auto That's all, nothing else is set, no module, no additional credential.

          Hugues Chabot added a comment - - edited

          This kind of project should be very well supported by the plugin.

          Are you using matrix-based access control by any chances ? New permission for Rebase and Integrate were added in the last release.

          Hugues Chabot added a comment - - edited This kind of project should be very well supported by the plugin. Are you using matrix-based access control by any chances ? New permission for Rebase and Integrate were added in the last release.

          We have the same problem, we had to revert to previous plugin version.
          We have multiple projects in the same SVN.

          Stefano Ciccarelli added a comment - We have the same problem, we had to revert to previous plugin version. We have multiple projects in the same SVN.

          Jackey Cheung added a comment -

          Yes, I'm using matrix-based access control. The user I've logged in has been granted all accesses,
          all check boxes are checked, including integrate and rebase.
          However, the Anonymous user has only been granted read permissions on some specific access.

          That's all, I've just created one account, which has full access to anything I see in the matrix.

          Jackey Cheung added a comment - Yes, I'm using matrix-based access control. The user I've logged in has been granted all accesses, all check boxes are checked, including integrate and rebase. However, the Anonymous user has only been granted read permissions on some specific access. That's all, I've just created one account, which has full access to anything I see in the matrix.

            hugueschabot Hugues Chabot
            eidng8 Jackey Cheung
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: