public void addFile(String path, String copyFromPath, long copyFromRevision) throws SVNException {
String absPath = getSourceRepository().getRepositoryPath(path);
EntryBaton baton = new EntryBaton(absPath);
myPathsToFileBatons.put(path, baton);
SVNLogEntryPath changedPath = (SVNLogEntryPath) myChangedPaths.get(absPath);
if (changedPath != null && (changedPath.getType() == SVNLogEntryPath.TYPE_ADDED || changedPath.getType() == SVNLogEntryPath.TYPE_REPLACED) && changedPath.getCopyPath() != null && changedPath.getCopyRevision() >= 0) {
baton.myPropsAct = DECIDE;
baton.myTextAct = ACCEPT;
Map props = new HashMap();
if (areFileContentsEqual(absPath, myTargetRevision, changedPath.getCopyPath(), changedPath.getCopyRevision(), props)) {
baton.myTextAct = IGNORE;
}
baton.myProps = props;
if(changedPath.getType() == SVNLogEntryPath.TYPE_REPLACED){
myCommitEditor.deleteEntry(path, myPreviousRevision);
myChangedPaths.remove(absPath);
}
myCommitEditor.addFile(path, changedPath.getCopyPath(), changedPath.getCopyRevision());
} else if (changedPath != null && (changedPath.getType() == SVNLogEntryPath.TYPE_ADDED || changedPath.getType() == SVNLogEntryPath.TYPE_REPLACED)) {
baton.myPropsAct = ACCEPT;
baton.myTextAct = ACCEPT;
if(changedPath.getType() == SVNLogEntryPath.TYPE_REPLACED){
myCommitEditor.deleteEntry(path, myPreviousRevision);
myChangedPaths.remove(absPath);
}
myCommitEditor.addFile(path, null, -1);
} else if (changedPath != null && changedPath.getType() == SVNLogEntryPath.TYPE_MODIFIED) {
baton.myPropsAct = DECIDE;
baton.myTextAct = ACCEPT;
SVNLogEntryPath realPath = getFileCopyOrigin(absPath);
if (realPath == null) {
SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.UNKNOWN, "Unknown error, can't get the copy origin of a file");
SVNErrorManager.error(err);
}
Map props = new HashMap();
if (areFileContentsEqual(absPath, myTargetRevision, realPath.getCopyPath(), realPath.getCopyRevision(), props)) {
baton.myTextAct = IGNORE;
}
baton.myProps = props;
myCommitEditor.openFile(path, myPreviousRevision);
} else if (changedPath == null) {