• Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major Major
    • subversion-plugin
    • None
    • Platform: All, OS: All

      Hudson has a field for the Subversion Repository URL. This setting is used both
      for polling and for the actual checkout/update of files from the repository.
      This enhancement request is for these two svn operations to be decoupled so that
      Hudson can poll a repository location for changes without fetching the files
      from the server, or vice-versa.

      In our specific case we need to watch for changes in a tree that has > 1GB of
      data, but the triggered build will only need a small subtree. The build scripts
      contain logic to locate and fetch only what they need from beneath the
      repository path on their own.

      This request is specifically for subversion but could conceivably be expanded to
      most if not all SCM plugins.

          [JENKINS-2717] svn polling without checkout or update

          Andrew Goktepe created issue -

          mdonohue added a comment -

          checkout can be decoupled from polling by not using a SCM polling trigger.
          Having polling without checkout seems less useful - issue 1370 seems to solve
          the problem described here

              • This issue has been marked as a duplicate of 1370 ***

          mdonohue added a comment - checkout can be decoupled from polling by not using a SCM polling trigger. Having polling without checkout seems less useful - issue 1370 seems to solve the problem described here This issue has been marked as a duplicate of 1370 ***
          mdonohue made changes -
          Resolution New: Duplicate [ 3 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          mdonohue made changes -
          Link New: This issue duplicates JENKINS-1370 [ JENKINS-1370 ]

          You might think it is less useful, but polling without checkout is what we need
          the most. Without it Hudson chokes on the checkout. See stack trace below.
          And we don't actually need all of these files. As I mentioned our scripts
          determine for themselves which files to grab from SVN.

          FATAL: remote file operation failed
          hudson.util.IOException2: remote file operation failed
          at hudson.FilePath.act(FilePath.java:385)
          at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:405)
          at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:354)
          at hudson.model.AbstractProject.checkout(AbstractProject.java:693)
          at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:266)
          at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:239)
          at hudson.model.Run.run(Run.java:842)
          at hudson.model.Build.run(Build.java:88)
          at hudson.model.ResourceController.execute(ResourceController.java:70)
          at hudson.model.Executor.run(Executor.java:90)
          Caused by: java.io.IOException: Remote call failed
          at hudson.remoting.Channel.call(Channel.java:462)
          at hudson.FilePath.act(FilePath.java:382)
          ... 9 more
          Caused by: java.lang.OutOfMemoryError: Java heap space
          at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:39)
          at java.nio.ByteBuffer.allocate(ByteBuffer.java:312)
          at sun.nio.cs.StreamDecoder$CharsetSD.<init>(StreamDecoder.java:378)
          at sun.nio.cs.StreamDecoder$CharsetSD.<init>(StreamDecoder.java:358)
          at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:74)
          at java.io.InputStreamReader.<init>(InputStreamReader.java:83)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea14.fetchEntries(SVNAdminArea14.java:672)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.loadEntries(SVNAdminArea.java:1076)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.getEntry(SVNAdminArea.java:863)
          at
          org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.tweakEntry(SVNAdminArea.java:235)
          at
          org.tmatesoft.svn.core.internal.wc.SVNWCManager.tweakEntries(SVNWCManager.java:328)
          at
          org.tmatesoft.svn.core.internal.wc.SVNWCManager.tweakEntries(SVNWCManager.java:368)
          at
          org.tmatesoft.svn.core.internal.wc.SVNWCManager.updateCleanup(SVNWCManager.java:317)
          at
          org.tmatesoft.svn.core.internal.wc.SVNUpdateEditor.closeEdit(SVNUpdateEditor.java:537)
          at
          org.tmatesoft.svn.core.internal.wc.SVNCancellableEditor.closeEdit(SVNCancellableEditor.java:147)
          at
          org.tmatesoft.svn.core.internal.io.dav.handlers.DAVEditorHandler.endElement(DAVEditorHandler.java:468)
          at
          org.tmatesoft.svn.core.internal.io.dav.handlers.BasicDAVHandler.endElement(BasicDAVHandler.java:94)
          at
          com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
          at
          com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719)
          at
          com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
          at
          com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
          at
          com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
          at
          com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
          at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
          at
          com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
          at
          org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:712)
          at
          org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:677)
          at
          org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:214)
          at
          org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:329)
          at
          org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:257)
          at
          org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:245)
          at
          org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:258)

          Andrew Goktepe added a comment - You might think it is less useful, but polling without checkout is what we need the most. Without it Hudson chokes on the checkout. See stack trace below. And we don't actually need all of these files. As I mentioned our scripts determine for themselves which files to grab from SVN. FATAL: remote file operation failed hudson.util.IOException2: remote file operation failed at hudson.FilePath.act(FilePath.java:385) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:405) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:354) at hudson.model.AbstractProject.checkout(AbstractProject.java:693) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:266) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:239) at hudson.model.Run.run(Run.java:842) at hudson.model.Build.run(Build.java:88) at hudson.model.ResourceController.execute(ResourceController.java:70) at hudson.model.Executor.run(Executor.java:90) Caused by: java.io.IOException: Remote call failed at hudson.remoting.Channel.call(Channel.java:462) at hudson.FilePath.act(FilePath.java:382) ... 9 more Caused by: java.lang.OutOfMemoryError: Java heap space at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:39) at java.nio.ByteBuffer.allocate(ByteBuffer.java:312) at sun.nio.cs.StreamDecoder$CharsetSD.<init>(StreamDecoder.java:378) at sun.nio.cs.StreamDecoder$CharsetSD.<init>(StreamDecoder.java:358) at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:74) at java.io.InputStreamReader.<init>(InputStreamReader.java:83) at org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea14.fetchEntries(SVNAdminArea14.java:672) at org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.loadEntries(SVNAdminArea.java:1076) at org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.getEntry(SVNAdminArea.java:863) at org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.tweakEntry(SVNAdminArea.java:235) at org.tmatesoft.svn.core.internal.wc.SVNWCManager.tweakEntries(SVNWCManager.java:328) at org.tmatesoft.svn.core.internal.wc.SVNWCManager.tweakEntries(SVNWCManager.java:368) at org.tmatesoft.svn.core.internal.wc.SVNWCManager.updateCleanup(SVNWCManager.java:317) at org.tmatesoft.svn.core.internal.wc.SVNUpdateEditor.closeEdit(SVNUpdateEditor.java:537) at org.tmatesoft.svn.core.internal.wc.SVNCancellableEditor.closeEdit(SVNCancellableEditor.java:147) at org.tmatesoft.svn.core.internal.io.dav.handlers.DAVEditorHandler.endElement(DAVEditorHandler.java:468) at org.tmatesoft.svn.core.internal.io.dav.handlers.BasicDAVHandler.endElement(BasicDAVHandler.java:94) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:712) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:677) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:214) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:329) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:257) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:245) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:258)
          peter_schuetze made changes -
          Link New: This issue is blocking JENKINS-3830 [ JENKINS-3830 ]
          Andrew Bayer made changes -
          Status Original: Resolved [ 5 ] New: Closed [ 6 ]

          +1

          I also have a requirement for triggering based on changes in scm without needing the actual checkout.
          In many cases this revolves around deploying an updated build product to vm's for testing.

          The actual build that needs the checkout is on a jenkins server which is inaccessible from the testing env.
          The job runs a deployscript on various vm's in our testing environment that picks up it's build-artifacts from a separate source

          Ramon van Alteren added a comment - +1 I also have a requirement for triggering based on changes in scm without needing the actual checkout. In many cases this revolves around deploying an updated build product to vm's for testing. The actual build that needs the checkout is on a jenkins server which is inaccessible from the testing env. The job runs a deployscript on various vm's in our testing environment that picks up it's build-artifacts from a separate source

          joe parelli added a comment -

          as pointed out in comments, this is not a duplicate issue. Many people have the necessity to poll SCM for changes and handle the checkout process in the scripts (fabric in my case)

          joe parelli added a comment - as pointed out in comments, this is not a duplicate issue. Many people have the necessity to poll SCM for changes and handle the checkout process in the scripts (fabric in my case)
          joe parelli made changes -
          Resolution Original: Duplicate [ 3 ]
          Status Original: Closed [ 6 ] New: Reopened [ 4 ]

            Unassigned Unassigned
            andrewgoktepe Andrew Goktepe
            Votes:
            23 Vote for this issue
            Watchers:
            24 Start watching this issue

              Created:
              Updated:
              Resolved: