-
Notifications
You must be signed in to change notification settings - Fork 5
Description
To avoid bad svn states, our software deletes the local svn folder prior to checkout using "rm -rf"
However, it seems that svnkit doesn't like this as it throws error E155005 at the end of the checkout process.
To be clear the folders are being deleted BEFORE SvnCheckout is created; but AFTER SvnOperationFactory is created.
Right now, I think the only good option is specifically ignoring this particular error code in my try-catch.
It seems to me that a directory not being locked shouldn't be an error during the final steps of a checkout. Especially since this method is trying to release a non-existent lock. At most it should be logged as warning and not thrown as an error.
The code responsible for this is in SvnNgAbstractUpdate at the end of the update method:

Here is the partial stack trace:
org.tmatesoft.svn.core.SVNException: svn: E155005: Working copy not locked at ...._private_dir at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70) at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57) at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.releaseWCLock(SVNWCDb.java:5990) at org.tmatesoft.svn.core.internal.wc17.SVNWCContext.releaseWriteLock(SVNWCContext.java:1766) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:129) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:877) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20) at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21) at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1239) at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
To be clear the checkout itself is working, that is everything is there in the resultant directory. This exception is just being thrown because the lock couldn't be released; which seems strange to me as part of a checkout. If this were thrown as part of the SvnLock method; i wouldn't complain, but as part of the checkout method it really ought to be a warning at most imo.