private static void runChangeRevPropHook(File reposRootDir, String hookName, String propName, String propValue, String author, long revision, String action, boolean isPre) throws SVNException {
public static void runChangeRevPropHook(File reposRootDir, String hookName, String propName, String propValue, String author, long revision, String action, boolean isPre) throws SVNException {
    private static void runChangeRevPropHook(File reposRootDir, String hookName, String propName, String propValue, String author, long revision, String action, boolean isPre) throws SVNException {        File hookFile = getHookFile(reposRootDir, hookName);        if (hookFile == null && isPre) {            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.REPOS_DISABLED_FEATURE,                    "Repository has not been enabled to accept revision propchanges;\nask the administrator to create a pre-revprop-change hook");            SVNErrorManager.error(err);        } else if (hookFile == null) {            return;        }        author = author == null ? "" : author;        Process hookProc = null;        String reposPath = reposRootDir.getAbsolutePath().replace(File.separatorChar, '/');        try {            String executableName = hookFile.getName().toLowerCase();            if ((executableName.endsWith(".bat") || executableName.endsWith(".cmd")) && SVNFileUtil.isWindows) {                String cmd = "cmd /C \"" + "\"" + hookFile.getAbsolutePath() + "\" " + "\"" + reposPath + "\" " + String.valueOf(revision) + " " + "\"" + author + "\" " + "\"" + propName + "\" "                        + action + "\"";                hookProc = Runtime.getRuntime().exec(cmd);            } else {                String[] cmd = {                        hookFile.getAbsolutePath(), reposPath, String.valueOf(revision), !"".equals(author) ? author : "\"\"", propName, action                };                hookProc = Runtime.getRuntime().exec(cmd);            }        } catch (IOException ioe) {            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.REPOS_HOOK_FAILURE, "Failed to start ''{0}'' hook: {1}", new Object[] {                    hookFile, ioe.getLocalizedMessage()            });            SVNErrorManager.error(err, ioe);        }        runHook(hookFile, hookName, hookProc, propValue, isPre);    }