• Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: Major Major
    • mercurial-plugin
    • None
    • Platform: All, OS: All

      If you have a build which needs to access multiple Hg repos at once, the normal
      way to set this up is to use the Forest extension. OpenJDK uses this to group
      together the different major components of the JDK, and NetBeans will probably
      use this to specify a preferred location for contrib modules to be overlaid on
      top of the main repository.

      Hudson however supports only a single repository. If you wanted to set up such a
      build with Hudson, you would only be able to configure the topmost repository
      from the forest in Hudson. While you could include steps in the build script to
      pull changes from nested repositories (cloning them if not already present),
      these changes would not appear in the changelog, making it far harder to
      diagnose build failures, and changes in a subtree would not trigger a build when
      using polling.

      Hudson should rather permit you to click a checkbox to use the Forest extension
      (which would need to be installed and enabled in the local copy of Hg). In this
      mode, fclone and fpull would replace clone and pull. The changelog creation
      would need to call ftrees to get a list of trees (or search for them directly in
      Java) and then log each one separately, and polling would need to check all the
      trees separately.

      While there could be more elaborate configuration options to retrieve only
      specified trees from particular locations into specific subdirectories, I am
      guessing that just enabling forest operations - where all the subtrees are
      automatically detected in a fixed configuration from the same server - would
      suffice for most sites, and add very little weight to the configuration GUI.

          [JENKINS-1143] Support Mercurial forests

          Jesse Glick added a comment -
              • Issue 1344 has been marked as a duplicate of this issue. ***

          Jesse Glick added a comment - Issue 1344 has been marked as a duplicate of this issue. ***

          While taking to the JavaFX team, they said they run a patched version of the
          mercurial plugin that supports forest, but they might have lost the source code.

          I'm trying to encourage Kelly to look into this

          Kohsuke Kawaguchi added a comment - While taking to the JavaFX team, they said they run a patched version of the mercurial plugin that supports forest, but they might have lost the source code. I'm trying to encourage Kelly to look into this

          Jesse Glick added a comment -

          I have a patch for rudimentary Forest support which I am testing.

          Jesse Glick added a comment - I have a patch for rudimentary Forest support which I am testing.

          Code changed in hudson
          User: : jglick
          Path:
          trunk/hudson/plugins/mercurial/src/main/java/hudson/plugins/mercurial/MercurialSCM.java
          trunk/hudson/plugins/mercurial/src/main/resources/hudson/plugins/mercurial/MercurialSCM/config.jelly
          trunk/hudson/plugins/mercurial/src/main/webapp/forest.html
          trunk/hudson/plugins/mercurial/src/test/java/hudson/plugins/mercurial/MercurialSCMTest.java
          http://fisheye4.cenqua.com/changelog/hudson/?cs=23686
          Log:
          [FIXED JENKINS-1143] Elementary support for Forest extension.
          Patch supplied by Aleksey Voytilov, with corrections:
          1. When !forest, just 'hg pull hg.bundle' (there is no --bundle option).
          2. When forest, add '-r $branch' to 'hg fpull'.

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : jglick Path: trunk/hudson/plugins/mercurial/src/main/java/hudson/plugins/mercurial/MercurialSCM.java trunk/hudson/plugins/mercurial/src/main/resources/hudson/plugins/mercurial/MercurialSCM/config.jelly trunk/hudson/plugins/mercurial/src/main/webapp/forest.html trunk/hudson/plugins/mercurial/src/test/java/hudson/plugins/mercurial/MercurialSCMTest.java http://fisheye4.cenqua.com/changelog/hudson/?cs=23686 Log: [FIXED JENKINS-1143] Elementary support for Forest extension. Patch supplied by Aleksey Voytilov, with corrections: 1. When !forest, just 'hg pull hg.bundle' (there is no --bundle option). 2. When forest, add '-r $branch' to 'hg fpull'.

          Code changed in hudson
          User: : jglick
          Path:
          http://fisheye4.cenqua.com/changelog/hudson/?cs=23687
          Log:
          JENKINS-1143 Deleted as this functionality is now an option in the main Mercurial plugin.

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : jglick Path: http://fisheye4.cenqua.com/changelog/hudson/?cs=23687 Log: JENKINS-1143 Deleted as this functionality is now an option in the main Mercurial plugin.

          Code changed in hudson
          User: : jglick
          Path:
          trunk/hudson/plugins/mercurial/src/main/resources/hudson/plugins/mercurial/MercurialSCM/config.jelly
          http://fisheye4.cenqua.com/changelog/hudson/?cs=23688
          Log:
          JENKINS-1143 Marking Forest support experimental for now.

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : jglick Path: trunk/hudson/plugins/mercurial/src/main/resources/hudson/plugins/mercurial/MercurialSCM/config.jelly http://fisheye4.cenqua.com/changelog/hudson/?cs=23688 Log: JENKINS-1143 Marking Forest support experimental for now.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          src/main/java/hudson/plugins/mercurial/MercurialInstallation.java
          src/main/java/hudson/plugins/mercurial/MercurialSCM.java
          src/main/resources/hudson/plugins/mercurial/MercurialInstallation/config.jelly
          src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-downloadForest.html
          src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-useCaches.html
          src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-useSharing.html
          src/main/resources/hudson/plugins/mercurial/MercurialSCM/config.jelly
          src/main/resources/hudson/plugins/mercurial/MercurialSCM/help-forest.html
          src/main/resources/index.jelly
          src/test/java/hudson/plugins/mercurial/CachingSCMTest.java
          src/test/java/hudson/plugins/mercurial/DebugFlagTest.java
          src/test/java/hudson/plugins/mercurial/ForestTest.java
          src/test/java/hudson/plugins/mercurial/MercurialSCMTest.java
          src/test/java/hudson/plugins/mercurial/SharingSCMTest.java
          src/test/java/hudson/plugins/mercurial/SwitchingSCMTest.java
          src/test/resources/hudson/plugins/mercurial/forest.py
          http://jenkins-ci.org/commit/mercurial-plugin/e314ee81211e01dab2f5bc4329b3e8f7667e2bc5
          Log:
          JENKINS-1143 Dropping support for Forest extension.
          The extension itself has long been deprecated;
          an unofficial fork for compatibility with newer Mercurials has not been updated in a year.
          The plugin integration was incomplete, rarely tested,
          and complicated implementation of other features.
          Anyway the new Multiple SCMs Plugin seems to do just as well for the same use cases.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: src/main/java/hudson/plugins/mercurial/MercurialInstallation.java src/main/java/hudson/plugins/mercurial/MercurialSCM.java src/main/resources/hudson/plugins/mercurial/MercurialInstallation/config.jelly src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-downloadForest.html src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-useCaches.html src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-useSharing.html src/main/resources/hudson/plugins/mercurial/MercurialSCM/config.jelly src/main/resources/hudson/plugins/mercurial/MercurialSCM/help-forest.html src/main/resources/index.jelly src/test/java/hudson/plugins/mercurial/CachingSCMTest.java src/test/java/hudson/plugins/mercurial/DebugFlagTest.java src/test/java/hudson/plugins/mercurial/ForestTest.java src/test/java/hudson/plugins/mercurial/MercurialSCMTest.java src/test/java/hudson/plugins/mercurial/SharingSCMTest.java src/test/java/hudson/plugins/mercurial/SwitchingSCMTest.java src/test/resources/hudson/plugins/mercurial/forest.py http://jenkins-ci.org/commit/mercurial-plugin/e314ee81211e01dab2f5bc4329b3e8f7667e2bc5 Log: JENKINS-1143 Dropping support for Forest extension. The extension itself has long been deprecated; an unofficial fork for compatibility with newer Mercurials has not been updated in a year. The plugin integration was incomplete, rarely tested, and complicated implementation of other features. Anyway the new Multiple SCMs Plugin seems to do just as well for the same use cases.

          dogfood added a comment -

          Integrated in plugins_mercurial #62
          JENKINS-1143 Dropping support for Forest extension.

          Jesse Glick :
          Files :

          • src/main/resources/hudson/plugins/mercurial/MercurialSCM/help-forest.html
          • src/test/java/hudson/plugins/mercurial/SharingSCMTest.java
          • src/test/resources/hudson/plugins/mercurial/forest.py
          • src/test/java/hudson/plugins/mercurial/CachingSCMTest.java
          • src/test/java/hudson/plugins/mercurial/MercurialSCMTest.java
          • src/main/resources/hudson/plugins/mercurial/MercurialInstallation/config.jelly
          • src/test/java/hudson/plugins/mercurial/DebugFlagTest.java
          • src/main/resources/index.jelly
          • src/test/java/hudson/plugins/mercurial/ForestTest.java
          • src/test/java/hudson/plugins/mercurial/SwitchingSCMTest.java
          • src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-useSharing.html
          • src/main/resources/hudson/plugins/mercurial/MercurialSCM/config.jelly
          • src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-useCaches.html
          • src/main/java/hudson/plugins/mercurial/MercurialSCM.java
          • src/main/java/hudson/plugins/mercurial/MercurialInstallation.java
          • src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-downloadForest.html

          dogfood added a comment - Integrated in plugins_mercurial #62 JENKINS-1143 Dropping support for Forest extension. Jesse Glick : Files : src/main/resources/hudson/plugins/mercurial/MercurialSCM/help-forest.html src/test/java/hudson/plugins/mercurial/SharingSCMTest.java src/test/resources/hudson/plugins/mercurial/forest.py src/test/java/hudson/plugins/mercurial/CachingSCMTest.java src/test/java/hudson/plugins/mercurial/MercurialSCMTest.java src/main/resources/hudson/plugins/mercurial/MercurialInstallation/config.jelly src/test/java/hudson/plugins/mercurial/DebugFlagTest.java src/main/resources/index.jelly src/test/java/hudson/plugins/mercurial/ForestTest.java src/test/java/hudson/plugins/mercurial/SwitchingSCMTest.java src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-useSharing.html src/main/resources/hudson/plugins/mercurial/MercurialSCM/config.jelly src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-useCaches.html src/main/java/hudson/plugins/mercurial/MercurialSCM.java src/main/java/hudson/plugins/mercurial/MercurialInstallation.java src/main/resources/hudson/plugins/mercurial/MercurialInstallation/help-downloadForest.html

          Henri Gomez added a comment -

          Forest extension was mandatory for OpenJDK 7 and 8 builds and dropping support was a very bad discovery for me this morning ;(

          Henri Gomez added a comment - Forest extension was mandatory for OpenJDK 7 and 8 builds and dropping support was a very bad discovery for me this morning ;(

          Jesse Glick added a comment -

          OpenJDK may be the only project still using this extension, so it did not seem worth complicating the plugin code and inhibiting other work to support a small minority of users. Workarounds:

          1. Stay with an earlier version of the plugin.

          2. Just configure the root repository in the plugin, and add fpull -u as a build step to the job. No changelog/polling support in this case.

          3. Recommended: use the Multiple SCMs Plugin.

          Jesse Glick added a comment - OpenJDK may be the only project still using this extension, so it did not seem worth complicating the plugin code and inhibiting other work to support a small minority of users. Workarounds: 1. Stay with an earlier version of the plugin. 2. Just configure the root repository in the plugin, and add fpull -u as a build step to the job. No changelog/polling support in this case. 3. Recommended: use the Multiple SCMs Plugin.

            jglick Jesse Glick
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: