Details

    • Type: New Feature
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Component/s: mercurial-plugin
    • Labels:
      None
    • Environment:
      Platform: All, OS: All
    • Similar Issues:

      Description

      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.

        Attachments

          Issue Links

            Activity

            Hide
            scm_issue_link 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.

            Show
            scm_issue_link 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.
            Hide
            scm_issue_link 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.

            Show
            scm_issue_link 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.
            Hide
            dogfood 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
            Show
            dogfood 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
            Hide
            hgomez 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 ;(

            Show
            hgomez 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 ;(
            Hide
            jglick 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.

            Show
            jglick 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.

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: