Hey Stephen, Alexander Kitaev from SVNKit has peer-reviewed this change and has rolled it into the upstream libraries, and the new binaries are available here: http://teamcity.tmatesoft.com/viewLog.html?buildId=6105&tab=artifacts&buildTypeId=bt43 (http://issues.tmatesoft.com/issue/SVNKIT-368#comment=60-4930). I'm not sure what the process is for getting this updated in the plugin, please let me know if there is anything else I can do to help.
Thank you, Kenny On Friday, April 26, 2013 3:04:03 AM UTC-7, Stephen Connolly wrote: > > Traditionally, the jenkins fork is maintaining a (hopefully) smaller set > of patches on top of the upstream version. > > The aim is to get the set of patches to zero and then drop the fork. > > With reference to the above aim, my preference would be to get it in > upstream rather than add to our current patch set. > > It is a real pain trying to update the code from upstream, at least every > time I have tried I have had to give up and get KK to do it (he has some > set of magic workspaces or something) so I would just love if we can get > the need for this fork to disappear completely > > -Stephen > > > On 26 April 2013 03:22, Kenny Ayers <[email protected] > <javascript:>>wrote: > >> Hi folks, >> >> *Short Version:* >> * >> * >> I may have a fix for Jenkins-14551 ( >> https://issues.jenkins-ci.org/browse/JENKINS-14551). I've submitted >> this potential resolution to SVNKit as well as their 1.7.6 SVN branch has >> the same issue (http://issues.tmatesoft.com/issue/SVNKIT-368). I've >> compiled the change into the subversion-plugin on my test server, and the >> fix appears to work. >> >> Can a contributor peer review this change? >> >> How do I go about submitting this fix to the Jenkins SVNKit repo? Do I >> need a unit test before I can do a pull request? The bug is obvious when >> you look at the code, and the unit test setup and execution seems like it >> would be complicated. I've forked the Jenkins SVNKit repo and committed >> the modification here: >> https://github.com/theotherwhitemeat/svnkit-1/commit/27decb28216ee4fd15b8fcbdb769bf41d81978eb >> >> *Longer Version:* >> * >> * >> In org.tmatesoft.svn.core.internal.wc.SVNUpdateEditor15.java, in >> function addFileWithHistory (line 867), there's a code block that calls >> myFileFetcher.fetchFile() twice. Each time this is called, baseTextOS is >> written to. Upon the second write, the file contents are duplicated. >> Here's the code: >> >> >> baseTextOS = SVNFileUtil.openFileForWriting(info.copiedBaseText); >> myFileFetcher.fetchFile(copyFromPath, copyFromRevision, baseTextOS, >> baseProperties); >> SVNChecksumOutputStream checksumBaseTextOS = new >> SVNChecksumOutputStream(baseTextOS, >> SVNChecksumOutputStream.MD5_ALGORITHM, true); >> baseTextOS = checksumBaseTextOS; >> myFileFetcher.fetchFile(copyFromPath, copyFromRevision, baseTextOS, >> baseProperties); >> info.copiedBaseChecksum = checksumBaseTextOS.getDigest(); >> >> >> >> I was able to find this by stepping through the code using NetBeans IDE >> 7.3 attached to a remote debugging session on Jenkins. I've compiled and >> tested this change inside the context of the subversion-plugin and the file >> contents are no longer duplicated. >> >> I've forked the svnkit repo used in Jenkins here, and committed this >> change if anyone would like to download the fix and do some testing: >> >> >> https://github.com/theotherwhitemeat/svnkit-1/commit/27decb28216ee4fd15b8fcbdb769bf41d81978eb >> >> Here's my patch: >> >> Index: SVNUpdateEditor15.java >> =================================================================== >> --- SVNUpdateEditor15.java (revision 9722) >> +++ SVNUpdateEditor15.java (working copy) >> @@ -864,7 +864,6 @@ >> OutputStream baseTextOS = null; >> try { >> baseTextOS = >> SVNFileUtil.openFileForWriting(info.copiedBaseText); >> - myFileFetcher.fetchFile(copyFromPath, copyFromRevision, >> baseTextOS, baseProperties); >> SVNChecksumOutputStream checksumBaseTextOS = new >> SVNChecksumOutputStream(baseTextOS, >> SVNChecksumOutputStream.MD5_ALGORITHM, true); >> baseTextOS = checksumBaseTextOS; >> >> Thank you, >> >> Kenny Ayers >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Jenkins Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
