MergePath child = (MergePath) childrenWithMergeInfoArray[newNearestAncestorIndex];
myCurrentAncestorIndex = newNearestAncestorIndex;
if (!child.myIsAbsent && !child.myRemainingRanges.isEmpty() &&
!(newNearestAncestorIndex == 0 && myIsTargetHasDummyMergeRange)) {
SVNMergeRange ranges[] = child.myRemainingRanges.getRanges();
SVNEvent mergeBeginEvent = SVNEventFactory.createSVNEvent(child.myPath,
SVNNodeKind.UNKNOWN, null, SVNRepository.INVALID_REVISION,
myIsSameRepository ? SVNEventAction.MERGE_BEGIN : SVNEventAction.FOREIGN_MERGE_BEGIN, null, null, ranges[0]);
super.handleEvent(mergeBeginEvent, ISVNEventHandler.UNKNOWN);
}
}
}
if (event.getContentsStatus() == SVNStatusType.MERGED ||
event.getContentsStatus() == SVNStatusType.CHANGED ||
event.getPropertiesStatus() == SVNStatusType.MERGED ||
event.getPropertiesStatus() == SVNStatusType.CHANGED ||
event.getAction() == SVNEventAction.UPDATE_ADD) {
File mergedPath = event.getFile();
if (myMergedPaths == null) {
myMergedPaths = new LinkedList();
}
myMergedPaths.add(mergedPath);
}
if (event.getAction() == SVNEventAction.SKIP) {
File skippedPath = event.getFile();
if (mySkippedPaths == null) {
mySkippedPaths = new LinkedList();
}
mySkippedPaths.add(skippedPath);
} else if (event.getAction() == SVNEventAction.UPDATE_ADD) {
boolean isRootOfAddedSubTree = false;
File addedPath = event.getFile();
if (myAddedPaths == null) {
isRootOfAddedSubTree = true;
myAddedPaths = new LinkedList();
} else {
File addedPathParent = addedPath.getParentFile();
isRootOfAddedSubTree = !myAddedPaths.contains(addedPathParent);
}
if (isRootOfAddedSubTree) {
myAddedPaths.add(addedPath);
}
}
} else if (!myIsSingleFileMerge && myOperativeNotificationsNumber == 1 && isOperativeNotification) {
SVNEvent mergeBeginEvent = SVNEventFactory.createSVNEvent(myTarget,
SVNNodeKind.UNKNOWN, null, SVNRepository.INVALID_REVISION,
myIsSameRepository ? SVNEventAction.MERGE_BEGIN : SVNEventAction.FOREIGN_MERGE_BEGIN, null, null, null);
super.handleEvent(mergeBeginEvent, ISVNEventHandler.UNKNOWN);
}