public static String getHumanReadableConflictDescription(SVNTreeConflictDescription treeConflict) {
SVNNodeKind incomingKind = SVNNodeKind.UNKNOWN;
if (treeConflict.getConflictAction() == SVNConflictAction.EDIT || treeConflict.getConflictAction() == SVNConflictAction.DELETE) {
if (treeConflict.getSourceLeftVersion() != null) {
incomingKind = treeConflict.getSourceLeftVersion().getKind();
}
} else if (treeConflict.getConflictAction() == SVNConflictAction.ADD || treeConflict.getConflictAction() == SVNConflictAction.REPLACE) {
if (treeConflict.getSourceRightVersion() != null) {
incomingKind = treeConflict.getSourceRightVersion().getKind();
}
}
final String reasonStr = getReasonString(treeConflict);
final String actionStr = getActionString(incomingKind, treeConflict);
final String operationStr = treeConflict.getOperation().getName();
String kindWithSpaceStr = getNodeKindString(treeConflict.getNodeKind());
if (kindWithSpaceStr.length() > 0) {
kindWithSpaceStr = kindWithSpaceStr + " ";
}
final String description = String.format("local %s%s, incoming %s upon %s", kindWithSpaceStr, reasonStr, actionStr, operationStr);
return description;
}