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

Support SVN 1.5

    XMLWordPrintable

    Details

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

      Description

      Hudson doesn't support SVN 1.5.

      I've compiled and installed SVN 1.5-rc9 from source under Ubuntu 8.04.
      Hudson ver. 1.215 runs under Jetty6 (also compiled from source).
      Checking out via svn-client or Subclipse works fine.

      This is the error I get when I set up a Hudson job to checkout from SVN 1.5:

      Unable to access svn://localhost/src : svn: Malformed network data (show details)

      org.tmatesoft.svn.core.SVNException: svn: Malformed network data
      at
      org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:55)
      at org.tmatesoft.svn.core.internal.io.svn.SVNReader.readChar(SVNReader.java:561)
      at org.tmatesoft.svn.core.internal.io.svn.SVNReader.parse(SVNReader.java:293)
      at
      org.tmatesoft.svn.core.internal.io.svn.SVNConnection.read(SVNConnection.java:238)
      at
      org.tmatesoft.svn.core.internal.io.svn.SVNConnection.receiveRepositoryCredentials(SVNConnection.java:200)
      at
      org.tmatesoft.svn.core.internal.io.svn.SVNConnection.authenticate(SVNConnection.java:190)
      at
      org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.authenticate(SVNRepositoryImpl.java:997)
      at
      org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:975)
      at
      org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.testConnection(SVNRepositoryImpl.java:69)
      at
      hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:1228)
      at hudson.scm.SubversionSCM$DescriptorImpl$2.check(SubversionSCM.java:1166)
      at hudson.util.FormFieldValidator.process(FormFieldValidator.java:55)
      at
      hudson.scm.SubversionSCM$DescriptorImpl.doSvnRemoteLocationCheck(SubversionSCM.java:1145)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:103)
      at org.kohsuke.stapler.Function.bindAndinvoke(Function.java:57)
      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:75)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:432)
      at org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:254)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:432)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:360)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:120)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
      at
      org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:88)
      at
      org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
      at
      org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:324)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
      at
      org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
      at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

      (Maybe you need to enter credential?)

        Attachments

          Activity

          Hide
          jramsdale jramsdale added a comment -

          With TortoiseSVN's update manager now recommending everyone upgrade to version
          1.5 this is likely to become a big deal very quickly. My previously happy
          projects are now failing under Hudson:

          started
          Updating https://svn.example.com/project/project/trunk/project
          ERROR: Failed to update https://svn.example.com/project/project/trunk/project
          org.tmatesoft.svn.core.SVNException: svn: This client is too old to work with
          working copy
          'C:\.hudson\jobs\project-app\workspace\project\project\src\test\resources';
          please get a newer Subversion client
          at
          org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:55)
          at
          org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:40)
          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:349)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.doOpen(SVNWCAccess.java:377)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.doOpen(SVNWCAccess.java:377)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.doOpen(SVNWCAccess.java:377)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.doOpen(SVNWCAccess.java:377)
          at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.open(SVNWCAccess.java:261)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.openAnchor(SVNWCAccess.java:153)
          at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:145)
          at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:387)
          at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:359)
          at hudson.FilePath.act(FilePath.java:315)
          at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:353)
          at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:304)
          at hudson.model.AbstractProject.checkout(AbstractProject.java:586)
          at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:251)
          at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:225)
          at hudson.model.Run.run(Run.java:784)
          at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:203)
          at hudson.model.ResourceController.execute(ResourceController.java:70)
          at hudson.model.Executor.run(Executor.java:88)
          finished: FAILURE

          Show
          jramsdale jramsdale added a comment - With TortoiseSVN's update manager now recommending everyone upgrade to version 1.5 this is likely to become a big deal very quickly. My previously happy projects are now failing under Hudson: started Updating https://svn.example.com/project/project/trunk/project ERROR: Failed to update https://svn.example.com/project/project/trunk/project org.tmatesoft.svn.core.SVNException: svn: This client is too old to work with working copy 'C:\.hudson\jobs\project-app\workspace\project\project\src\test\resources'; please get a newer Subversion client at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:55) at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:40) 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:349) at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.doOpen(SVNWCAccess.java:377) at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.doOpen(SVNWCAccess.java:377) at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.doOpen(SVNWCAccess.java:377) at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.doOpen(SVNWCAccess.java:377) at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.open(SVNWCAccess.java:261) at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.openAnchor(SVNWCAccess.java:153) at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:145) at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:387) at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:359) at hudson.FilePath.act(FilePath.java:315) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:353) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:304) at hudson.model.AbstractProject.checkout(AbstractProject.java:586) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:251) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:225) at hudson.model.Run.run(Run.java:784) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:203) at hudson.model.ResourceController.execute(ResourceController.java:70) at hudson.model.Executor.run(Executor.java:88) finished: FAILURE
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in hudson
          User: : kohsuke
          Path:
          trunk/hudson/main/core/pom.xml
          trunk/hudson/main/core/src/main/java/hudson/scm/SubversionSCM.java
          trunk/hudson/main/core/src/main/java/hudson/scm/SubversionTagAction.java
          trunk/hudson/main/core/src/main/java/hudson/scm/SubversionUpdateEventHandler.java
          trunk/www/changelog.html
          http://fisheye4.cenqua.com/changelog/hudson/?cs=11012
          Log:
          [FIXED JENKINS-1856]
          Integrated svnkit 1.2.0-beta-2.

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in hudson User: : kohsuke Path: trunk/hudson/main/core/pom.xml trunk/hudson/main/core/src/main/java/hudson/scm/SubversionSCM.java trunk/hudson/main/core/src/main/java/hudson/scm/SubversionTagAction.java trunk/hudson/main/core/src/main/java/hudson/scm/SubversionUpdateEventHandler.java trunk/www/changelog.html http://fisheye4.cenqua.com/changelog/hudson/?cs=11012 Log: [FIXED JENKINS-1856] Integrated svnkit 1.2.0-beta-2.
          Hide
          jramsdale jramsdale added a comment -

          SVN isn't happy when clients of different versions try to mess with the same
          metadata. Switching to 1.5 is great for me but might cause much grief for
          others. Does SVNKit provide a switch to preserve 1.4.x metadata? I'd hate to see
          Hudson update everyone's metadata and render their other clients useless. We
          might need a configuration switch that says to use 1.4 or 1.5 metadata...

          Show
          jramsdale jramsdale added a comment - SVN isn't happy when clients of different versions try to mess with the same metadata. Switching to 1.5 is great for me but might cause much grief for others. Does SVNKit provide a switch to preserve 1.4.x metadata? I'd hate to see Hudson update everyone's metadata and render their other clients useless. We might need a configuration switch that says to use 1.4 or 1.5 metadata...
          Hide
          swiest Simon Wiest added a comment -

          This issue is about upgrading Hudson's Subversion support from 1.4 to 1.5.

          But like jramsdale mentions, sometimes you want to choose the working copies
          created by Hudson to be in 1.4 explicitly - even when Hudson would support a
          more recent working copy version. This is useful, if you want to run the most
          recent versions of Hudson, but some of your external build tools at your place
          are still using the Subversion 1.4 working copy format (and cannot be updated
          for whatever reasons...).

          The svncompat14 plugin (see
          http://hudson.gotdns.com/wiki/display/JENKINS/SVNCompat14+Plugin) forces the
          built-in SVNKit library to act as a Subversion 1.4 client.

          Show
          swiest Simon Wiest added a comment - This issue is about upgrading Hudson's Subversion support from 1.4 to 1.5. But like jramsdale mentions, sometimes you want to choose the working copies created by Hudson to be in 1.4 explicitly - even when Hudson would support a more recent working copy version. This is useful, if you want to run the most recent versions of Hudson, but some of your external build tools at your place are still using the Subversion 1.4 working copy format (and cannot be updated for whatever reasons...). The svncompat14 plugin (see http://hudson.gotdns.com/wiki/display/JENKINS/SVNCompat14+Plugin ) forces the built-in SVNKit library to act as a Subversion 1.4 client.

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            apex apex
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: