This file is designed for importing into a main build file, and not intended for standalone use. Clover not enabled! You can find the merged Lucene/Solr Clover report in '${clover.report.dir}'. '.' + file.getAbsolutePath().substring(baseLen).replace(File.separatorChar, (char)'/'); } // do some fake check, to verify if this is valid SVN working copy. If this fails ignore checks but log some useful message. try { statusClient.doStatus(basedir, false); } catch (SVNException ex) { int code = ex.getErrorMessage().getErrorCode().getCode(); if (code == SVNErrorCode.WC_UNSUPPORTED_FORMAT.getCode()) { task.log('WARNING: Unsupported SVN working copy version! Disabling checks...', Project.MSG_WARN); task.log('If your working copy is on version 1.8 already, please pass -Dsvnkit.version=' + RECOMMENDED_SVNKIT_18 + ' to successfully run checks.', Project.MSG_INFO); return; } else if (code == SVNErrorCode.WC_NOT_DIRECTORY.getCode() || code == SVNErrorCode.WC_NOT_FILE.getCode()) { task.log('WARNING: Development directory is not an SVN checkout! Disabling checks...', Project.MSG_WARN); return; } else { task.log('WARNING: Development directory is not a valid SVN checkout (' + ex.getErrorMessage() + '). Disabling checks...', Project.MSG_WARN); return; } } Set missingProps = new TreeSet(), unversioned = new TreeSet(), changed = new TreeSet(); task.log('Getting all versioned and unversioned files...'); statusClient.doStatus(basedir, SVNRevision.WORKING, SVNDepth.fromRecurse(true), false, true, false, false, { status -> SVNStatusType nodeStatus = status.getNodeStatus(); if (nodeStatus == SVNStatusType.STATUS_UNVERSIONED || nodeStatus == SVNStatusType.STATUS_MISSING) { unversioned.add(convertRelative(status.getFile())); } else if (status.getKind() == SVNNodeKind.FILE && nodeStatus != SVNStatusType.STATUS_DELETED) { missingProps.add(convertRelative(status.getFile())); } if (nodeStatus == SVNStatusType.STATUS_MODIFIED || nodeStatus == SVNStatusType.STATUS_REPLACED || nodeStatus == SVNStatusType.STATUS_DELETED || nodeStatus == SVNStatusType.STATUS_ADDED) { changed.add(convertRelative(status.getFile())); } } as ISVNStatusHandler, null); task.log('Filtering files with existing svn:eol-style...'); wcClient.doGetProperty(basedir, 'svn:eol-style', SVNRevision.WORKING, SVNRevision.WORKING, true, { file, prop -> missingProps.remove(convertRelative(file)); } as ISVNPropertyHandler); task.log('Filtering files with binary svn:mime-type...'); wcClient.doGetProperty(basedir, 'svn:mime-type', SVNRevision.WORKING, SVNRevision.WORKING, true, { file, prop -> prop = SVNPropertyValue.getPropertyAsString(prop.getValue()); if (prop.startsWith('application/') || prop.startsWith('image/')) { missingProps.remove(convertRelative(file)); } } as ISVNPropertyHandler); def convertSet2String = { set -> set ? ('* ' + set.join(project.getProperty('line.separator') + '* ')) : null }; project.setProperty('svn.checkprops.failed', convertSet2String(missingProps)); project.setProperty('svn.unversioned.failed', convertSet2String(unversioned)); project.setProperty('svn.changed.failed', convertSet2String(changed)); ]]>