attributes.put(SVNProperty.COPIED, copied ? Boolean.TRUE.toString() : null);
}
dir.modifyEntry(entry.getName(), attributes, true, false);
attributes.clear();
if (SVNProperty.SCHEDULE_DELETE.equals(schedule)) {
SVNEvent event = SVNEventFactory.createSVNEvent(dir.getFile(entry.getName()), SVNNodeKind.UNKNOWN, null, 0, SVNEventAction.DELETE, null, null, null);
dir.getWCAccess().handleEvent(event);
}
}
SVNEntry dirEntry = dir.getEntry(dir.getThisDirName(), false);
if (!(dirEntry.isScheduledForAddition() && SVNProperty.SCHEDULE_DELETE.equals(schedule))) {
if ((flags & SCHEDULE) != 0) {
attributes.put(SVNProperty.SCHEDULE, schedule);
}
if ((flags & COPIED) != 0) {
attributes.put(SVNProperty.COPIED, copied ? Boolean.TRUE.toString() : null);
}
if (keepLocal) {
attributes.put(SVNProperty.KEEP_LOCAL, SVNProperty.toString(true));
}
dir.modifyEntry(dir.getThisDirName(), attributes, true, false);
attributes.clear();
}
dir.saveEntries(false);
// could check for cancellation - entries file saved.
dir.getWCAccess().checkCancelled();
// recurse.
for (Iterator dirs = recurseMap.keySet().iterator(); dirs.hasNext();) {
String entryName = (String) dirs.next();
SVNAdminArea childDir = (SVNAdminArea) recurseMap.get(entryName);
// update 'dir' entry, save entries file again, then enter recursion.
if ((flags & SCHEDULE) != 0) {
attributes.put(SVNProperty.SCHEDULE, schedule);
}
if ((flags & COPIED) != 0) {
attributes.put(SVNProperty.COPIED, copied ? Boolean.TRUE.toString() : null);
}
dir.modifyEntry(entryName, attributes, true, false);
attributes.clear();
if (SVNProperty.SCHEDULE_DELETE.equals(schedule)) {
SVNEvent event = SVNEventFactory.createSVNEvent(dir.getFile(entryName), SVNNodeKind.UNKNOWN, null, 0, SVNEventAction.DELETE, null, null, null);
dir.getWCAccess().handleEvent(event);
}
dir.saveEntries(false);
markTree(childDir, schedule, copied, keepLocal, flags);
}