commitEditor.openFile(commitPath, rev);
if (!fileOpen) { commitEditor.openFile(commitPath, rev); }
    public void handleCommitPath(String commitPath, ISVNEditor commitEditor) throws SVNException {        SVNCommitItem item = (SVNCommitItem) myCommitItems.get(commitPath);        if (item.isCopied()) {            if (item.getCopyFromURL() == null) {                SVNErrorManager.error("svn: Commit item '" + item.getFile() + "' has copy flag but no copyfrom URL");            } else if (item.getRevision().getNumber() < 0) {                SVNErrorManager.error("svn: Commit item '" + item.getFile() + "' has copy flag but an invalid revision");            }        }        SVNEvent event = null;        if (item.isAdded() && item.isDeleted()) {            event = SVNEventFactory.createCommitEvent(myWCAccess.getAnchor().getRoot(), item.getFile(), SVNEventAction.COMMIT_REPLACED, item.getKind(), null);        } else if (item.isAdded()) {            String mimeType = null;            if (item.getKind() == SVNNodeKind.FILE) {                SVNWCAccess wcAccess = SVNWCAccess.create(item.getFile());                mimeType = wcAccess.getAnchor().getProperties(wcAccess.getTargetName(), false).getPropertyValue(SVNProperty.MIME_TYPE);            }            event = SVNEventFactory.createCommitEvent(myWCAccess.getAnchor().getRoot(), item.getFile(), SVNEventAction.COMMIT_ADDED, item.getKind(), mimeType);        } else if (item.isDeleted()) {            event = SVNEventFactory.createCommitEvent(myWCAccess.getAnchor().getRoot(), item.getFile(), SVNEventAction.COMMIT_DELETED, item.getKind(), null);        } else if (item.isContentsModified() || item.isPropertiesModified()) {            SVNStatusType propType = item.isPropertiesModified() ? SVNStatusType.CHANGED : SVNStatusType.UNCHANGED;            SVNStatusType textType = item.isContentsModified() ? SVNStatusType.CHANGED : SVNStatusType.UNCHANGED;            event = SVNEventFactory.createCommitEvent(myWCAccess.getAnchor().getRoot(), item.getFile(), SVNEventAction.COMMIT_MODIFIED, item.getKind(), textType, propType);        }        if (event != null) {            myWCAccess.svnEvent(event, ISVNEventListener.UNKNOWN);        }        long rev = item.getRevision().getNumber();        long cfRev = item.getCopyFromURL() != null ? rev : -1;        if (item.isDeleted()) {            commitEditor.deleteEntry(commitPath, rev);        }        boolean fileOpen = false;        if (item.isAdded()) {            if (item.getKind() == SVNNodeKind.FILE) {                commitEditor.addFile(commitPath, item.getCopyFromURL(), cfRev);                fileOpen = true;            } else {                commitEditor.addDir(commitPath, item.getCopyFromURL(), cfRev);            }        }        if (item.isPropertiesModified()) {            if (item.getKind() == SVNNodeKind.FILE) {                commitEditor.openFile(commitPath, rev);                fileOpen = true;            } else {                if ("".equals(commitPath)) {                    commitEditor.openRoot(rev);                } else {                    commitEditor.openDir(commitPath, rev);                }            }            sendPropertiedDelta(item, commitEditor);        }        if (item.isContentsModified() && item.getKind() == SVNNodeKind.FILE) {            if (!fileOpen) {                commitEditor.openFile(commitPath, rev);            }            myModifiedFiles.put(commitPath, item);        } else if (fileOpen) {            commitEditor.closeFile(null);        }    }