if (myIsCompareToBase) {
return;
}
SVNAdminArea dir = retrieve(info.myPath);
boolean anchor = !"".equals(myAdminInfo.getTargetName()) && dir == myAdminInfo.getAnchor();
SVNEntry thisDirEntry = dir.getEntry(dir.getThisDirName(), false);
if (SVNWCAccess.matchesChangeList(myChangeLists, thisDirEntry) && !anchor &&
!info.myComparedEntries.contains("")) {
// generate prop diff for dir.
if (dir.hasPropModifications(dir.getThisDirName())) {
SVNVersionedProperties baseProps = dir.getBaseProperties(dir.getThisDirName());
SVNProperties propDiff = baseProps.compareTo(dir.getProperties(dir.getThisDirName())).asMap();
getDiffCallback().propertiesChanged(info.myPath, baseProps.asMap(), propDiff, null);
}
}
if (info.myDepth == SVNDepth.EMPTY && !anchor) {
return;
}
Set processedFiles = null;
if (getDiffCallback().isDiffUnversioned()) {
processedFiles = new SVNHashSet();
}
for (Iterator entries = dir.entries(false); entries.hasNext();) {
SVNEntry entry = (SVNEntry) entries.next();
if (processedFiles != null && !dir.getThisDirName().equals(entry.getName())) {
processedFiles.add(entry.getName());
}
if (anchor && !myAdminInfo.getTargetName().equals(entry.getName())) {
continue;
}
if (dir.getThisDirName().equals(entry.getName())) {
continue;
}
if (info.myComparedEntries.contains(entry.getName())) {
continue;
}
info.myComparedEntries.add(entry.getName());
if (entry.isFile()) {
reportModifiedFile(info, entry);
} else if (entry.isDirectory()) {
if (anchor || info.myDepth.compareTo(SVNDepth.FILES) > 0 ||
info.myDepth == SVNDepth.UNKNOWN) {
SVNDepth depthBelowHere = info.myDepth;
if (depthBelowHere == SVNDepth.IMMEDIATES) {
depthBelowHere = SVNDepth.EMPTY;
}
SVNDirectoryInfo childInfo = createDirInfo(info,
SVNPathUtil.append(info.myPath, entry.getName()),
false,
depthBelowHere);
localDirectoryDiff(childInfo);
}
}