writeString(writer, name, emptyFields);
if (!writeString(writer, name, emptyFields)) { ++emptyFields; }
    private void writeEntry(Writer writer, String name, Map entry, Map rootEntry) throws IOException {        boolean isThisDir = getThisDirName().equals(name);        boolean isSubDir = !isThisDir && SVNProperty.KIND_DIR.equals(entry.get(SVNProperty.KIND));         int emptyFields = 0;        writeString(writer, name, emptyFields);                String kind = (String)entry.get(SVNProperty.KIND);        if (writeValue(writer, kind, emptyFields)){            emptyFields = 0;        } else {            ++emptyFields;        }        String revision = null;        if (isThisDir){             revision = (String)entry.get(SVNProperty.REVISION);        } else if (!isSubDir){            revision = (String)entry.get(SVNProperty.REVISION);            if (revision != null && revision.equals(rootEntry.get(SVNProperty.REVISION))) {                revision = null;            }        }        if (writeRevision(writer, revision, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String url = null;        if (isThisDir) {            url = (String)entry.get(SVNProperty.URL);        } else if (!isSubDir) {            url = (String)entry.get(SVNProperty.URL);            String expectedURL = SVNPathUtil.append((String)rootEntry.get(SVNProperty.URL), name);            if (url != null && url.equals(expectedURL)) {                url = null;            }        }        if (writeString(writer, url, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String root = null;        if (isThisDir) {            root = (String)entry.get(SVNProperty.REPOS);        } else if (!isSubDir) {            String thisDirRoot = (String)rootEntry.get(SVNProperty.REPOS);            root = (String)entry.get(SVNProperty.REPOS);            if (root != null && root.equals(thisDirRoot)) {                root = null;            }        }        if (writeString(writer, root, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String schedule = (String)entry.get(SVNProperty.SCHEDULE);        if (schedule != null && (!SVNProperty.SCHEDULE_ADD.equals(schedule) && !SVNProperty.SCHEDULE_DELETE.equals(schedule) && !SVNProperty.SCHEDULE_REPLACE.equals(schedule))) {            schedule = null;        }        if (writeValue(writer, schedule, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String textTime = (String)entry.get(SVNProperty.TEXT_TIME);        if (writeValue(writer, textTime, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String checksum = (String)entry.get(SVNProperty.CHECKSUM);        if (writeValue(writer, checksum, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String committedDate = (String)entry.get(SVNProperty.COMMITTED_DATE);        if (writeValue(writer, committedDate, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }        String committedRevision = (String)entry.get(SVNProperty.COMMITTED_REVISION);        if (writeRevision(writer, committedRevision, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String committedAuthor = (String)entry.get(SVNProperty.LAST_AUTHOR);        if (writeString(writer, committedAuthor, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String hasProps = (String)entry.get(SVNProperty.HAS_PROPS);        if (writeValue(writer, hasProps != null && SVNProperty.booleanValue(hasProps) ? SVNProperty.HAS_PROPS : null, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }        String hasPropMods = (String)entry.get(SVNProperty.HAS_PROP_MODS);        if (writeValue(writer, hasPropMods != null && SVNProperty.booleanValue(hasPropMods)? SVNProperty.HAS_PROP_MODS : null, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String cachableProps = asString((String[])entry.get(SVNProperty.CACHABLE_PROPS), " ");        if (!isThisDir) {                         String thisDirCachableProps = asString((String[])rootEntry.get(SVNProperty.CACHABLE_PROPS), " ");            if (thisDirCachableProps != null && cachableProps != null && thisDirCachableProps.equals(cachableProps)) {                cachableProps = null;            }        }        if (writeValue(writer, cachableProps, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }        String presentProps = asString((String[])entry.get(SVNProperty.PRESENT_PROPS), " ");        if (writeValue(writer, presentProps, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String propRejectFile = (String)entry.get(SVNProperty.PROP_REJECT_FILE);        if (writeString(writer, propRejectFile, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String conflictOldFile = (String)entry.get(SVNProperty.CONFLICT_OLD);        if (writeString(writer, conflictOldFile, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }        String conflictNewFile = (String)entry.get(SVNProperty.CONFLICT_NEW);        if (writeString(writer, conflictNewFile, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }            String conflictWrkFile = (String)entry.get(SVNProperty.CONFLICT_WRK);        if (writeString(writer, conflictWrkFile, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }        String copiedAttr = (String)entry.get(SVNProperty.COPIED);        if (writeValue(writer, copiedAttr != null ? ATTRIBUTE_COPIED : null, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String copyfromURL = (String)entry.get(SVNProperty.COPYFROM_URL);        if (writeString(writer, copyfromURL, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String copyfromRevision = (String)entry.get(SVNProperty.COPYFROM_REVISION);        if (writeRevision(writer, copyfromRevision, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String deletedAttr = (String)entry.get(SVNProperty.DELETED);        if (writeValue(writer, deletedAttr != null ? ATTRIBUTE_DELETED : null, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String absentAttr = (String)entry.get(SVNProperty.ABSENT);        if (writeValue(writer, absentAttr != null ? ATTRIBUTE_ABSENT : null, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }        String incompleteAttr = (String)entry.get(SVNProperty.INCOMPLETE);        if (writeValue(writer, incompleteAttr != null ? ATTRIBUTE_INCOMPLETE : null, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String uuid = (String)entry.get(SVNProperty.UUID);        if (!isThisDir) {                         String thisDirUUID = (String)rootEntry.get(SVNProperty.UUID);            if (thisDirUUID != null && uuid != null && thisDirUUID.equals(uuid)) {                uuid = null;            }        }        if (writeValue(writer, uuid, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String lockToken = (String)entry.get(SVNProperty.LOCK_TOKEN);        if (writeString(writer, lockToken, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String lockOwner = (String)entry.get(SVNProperty.LOCK_OWNER);        if (writeString(writer, lockOwner, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }        String lockComment = (String)entry.get(SVNProperty.LOCK_COMMENT);        if (writeString(writer, lockComment, emptyFields)) {            emptyFields = 0;        } else {            ++emptyFields;        }                String lockCreationDate = (String)entry.get(SVNProperty.LOCK_CREATION_DATE);        writeValue(writer, lockCreationDate, emptyFields);        writer.write("\f\n");        writer.flush();    }