if (localKind == SVNStatusKind.EXTERNAL && baseStatusInfo.getUrl() == null) return SyncInfo.IN_SYNC;
    protected int calculateKind() throws TeamException {        SVNStatusKind localKind = baseStatusInfo.getStatusKind();        SVNStatusKind repositoryKind = (remoteStatusInfo != null)            								? remoteStatusInfo.getStatusKind() : SVNStatusKind.NORMAL;        IResource local = getLocal();                if (!local.exists()) {        	if (isAddition(repositoryKind)) return SyncInfo.INCOMING | SyncInfo.ADDITION;            if (localKind == SVNStatusKind.UNVERSIONED || localKind == SVNStatusKind.NONE) return SyncInfo.IN_SYNC;            if (isDeletion(repositoryKind)) return SyncInfo.IN_SYNC;            if (isDeletion(localKind)) {                if (isChange(repositoryKind)) return SyncInfo.CONFLICTING | SyncInfo.DELETION;                return SyncInfo.OUTGOING | SyncInfo.DELETION;            } else return SyncInfo.INCOMING | SyncInfo.ADDITION;        }        //this makes sense for directories only - they still exists when they are being deleted        else if ( isDeletion(localKind))        {        	if ((IResource.FOLDER == local.getType())         			&& (isNotModified(repositoryKind))) return SyncInfo.OUTGOING | SyncInfo.DELETION;        }        else if( isChange(localKind) ) {            if( isChange( repositoryKind )             || isAddition( repositoryKind )              || isDeletion( repositoryKind ))                return SyncInfo.CONFLICTING | SyncInfo.CHANGE;            else                return SyncInfo.OUTGOING | SyncInfo.CHANGE;        }        else if( isAddition( localKind ) ) {            if( isAddition( repositoryKind ) )                return SyncInfo.CONFLICTING | SyncInfo.ADDITION;            return SyncInfo.OUTGOING | SyncInfo.ADDITION;        }        else if( isNotModified(localKind) ) {            if( isNotModified( repositoryKind) )                return SyncInfo.IN_SYNC;            if( repositoryKind == SVNStatusKind.DELETED )                return SyncInfo.INCOMING | SyncInfo.DELETION;            if( repositoryKind == SVNStatusKind.ADDED )                return SyncInfo.INCOMING | SyncInfo.ADDITION;            if( repositoryKind == SVNStatusKind.EXTERNAL)                return SyncInfo.IN_SYNC;//TODO Is this really necessary here ?//            if (getComparator().compare(getBase(), getRemote())) //                return SyncInfo.IN_SYNC;            return SyncInfo.INCOMING | SyncInfo.CHANGE;        }        else if( repositoryKind == SVNStatusKind.EXTERNAL ) {        	if ( localKind == SVNStatusKind.EXTERNAL)        		return SyncInfo.OUTGOING | SyncInfo.CHANGE;        }                return super.calculateKind();    }