DebugLog.log("merging props, remote diff:" + propDiff); DebugLog.log("merging props, local diff:" + localDiff);
    private SVNStatusType propertiesChanged(String path, String name,            Map baseProps, Map propDiff) throws SVNException {        if (propDiff == null || propDiff.isEmpty()) {            return SVNStatusType.UNCHANGED;        }        SVNDirectory dir = myWCAccess.getDirectory(path);        if (dir == null) {            return SVNStatusType.MISSING;        }        SVNStatusType result = null;        SVNLog log = null;        if (!myIsDryRun) {            log = dir.getLog(0);        }        // 1. convert props to diff (need we?), just use remote diff        // ->        // 2. get local mods.        DebugLog.log("entry name: " + name);        SVNProperties localBaseProps = dir.getBaseProperties(name, false);        SVNProperties localWCProps = dir.getProperties(name, false);        // will contain all deleted and added, but not unchanged.        Map wcProps = localWCProps.asMap();        Map localDiff = localBaseProps.compareTo(localWCProps);        // now add all non-null from wc to localDiff.        DebugLog.log("all wc props: " + wcProps);        /*         * for(Iterator wcPropsNames = wcProps.keySet().iterator();         * wcPropsNames.hasNext();) { String wcPropName = (String)         * wcPropsNames.next(); DebugLog.log("wc prop: " + wcPropName); if         * (!localDiff.containsKey(wcPropName)) { DebugLog.log("not modified: " +         * wcProps.get(wcPropName)); localDiff.put(wcPropName,         * wcProps.get(wcPropName)); } }         */        // 3. merge        DebugLog.log("merging props, remote diff:" + propDiff);        DebugLog.log("merging props, local diff:" + localDiff);        result = dir.mergeProperties(name, propDiff, localDiff, false, log);        DebugLog.log("running log: " + log);        if (log != null) {            log.save();            dir.runLogs();        }        // to make python tests pass.        if (result == SVNStatusType.MERGED                || result == SVNStatusType.CONFLICTED) {            result = SVNStatusType.CHANGED;        }        return result;    }