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

incorrect handling of multilevel subversion externals

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Component/s: subversion-plugin
    • Labels:
      None
    • Environment:
      Platform: All, OS: All
    • Similar Issues:
      Show 5 results

      Description

      example:

      tree is as follow:

      foo
         --- a
         --- b
         --- c (has external property set to put cc in externals under c)
              --- externals
                           --- cc
      

      when updating to build the changeset the modulepath is set to foo (ok) but then
      the cc external complete path is built from modulepath and ext path which gives
      (wrongly) foo/externals/cc (instead of foo/c/externals/cc). When svn info is
      issued the error is:

      ERROR: Failed to parse svn info for external <url> "wrong external path"
      org.tmatesoft.svn.core.SVNException: svn: 'd:\home\sdalton\hudson-1.184-src\hudson-1.184\war\work\jobs\testing "wrong external path" is not a working copy
      svn: Cannot read from to 'd:\home\sdalton\hudson-1.184-src\hudson-1.184\war\work\jobs\testing mono\workspace\mono\externals\.svn\format': path refers to directory or read
      access is denied
      	at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:49)
      	at org.tmatesoft.svn.core.internal.wc.admin.SVNAdminAreaFactory.open(SVNAdminAreaFactory.java:132)
      	at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.doOpen(SVNWCAccess.java:344)
      	at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.open(SVNWCAccess.java:261)
      	at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.probeOpen(SVNWCAccess.java:279)
      	at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:1881)
      	at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:1818)
      	at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2172)
      	at hudson.scm.SubversionSCM$BuildRevisionMapTask.invoke(SubversionSCM.java:631)
      	at hudson.scm.SubversionSCM$BuildRevisionMapTask.invoke(SubversionSCM.java:601)
      	at hudson.FilePath.act(FilePath.java:301)
      	at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:308)
      	at hudson.model.AbstractProject.checkout(AbstractProject.java:558)
      	at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:215)
      	at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:181)
      	at hudson.model.Run.run(Run.java:659)
      	at hudson.model.Build.run(Build.java:101)
      	at hudson.model.ResourceController.execute(ResourceController.java:70)
      	at hudson.model.Executor.run(Executor.java:65)
      

        Attachments

          Activity

          Hide
          sdalton sdalton added a comment -

          after a bit of digging I found that the change MAIN:kohsuke:20080208022907 broke
          the correct handling of subversion externals in the case an external is not
          directly under the modulePath name. SVNEvent.getPath returns a different path
          than SVNExternalInfo.getPath. The SVNEvent one is correct. I'm only guessing
          that the information is not correctly propagated during the call to
          SVNEvent.getExternalInfo(). A simple but disgusting fix is to add the SVNEvent
          to the constructor call of External so that the external path is built correctly.

          Show
          sdalton sdalton added a comment - after a bit of digging I found that the change MAIN:kohsuke:20080208022907 broke the correct handling of subversion externals in the case an external is not directly under the modulePath name. SVNEvent.getPath returns a different path than SVNExternalInfo.getPath. The SVNEvent one is correct. I'm only guessing that the information is not correctly propagated during the call to SVNEvent.getExternalInfo(). A simple but disgusting fix is to add the SVNEvent to the constructor call of External so that the external path is built correctly.
          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          Fixed in newer versions.
          Nested externals work well

          Show
          oleg_nenashev Oleg Nenashev added a comment - Fixed in newer versions. Nested externals work well

            People

            • Assignee:
              Unassigned
              Reporter:
              sdalton sdalton
            • Votes:
              3 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: