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

      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)
      

        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: