SVNProperties modifiedProps = fileInfo.getChangedProperties();
String commitTime = fileInfo.CommitTime;
SVNProperties command = new SVNProperties();
SVNStatusType textStatus = SVNStatusType.UNCHANGED;
SVNStatusType lockStatus = SVNStatusType.LOCK_UNCHANGED;
if (myAdminInfo.isIncomplete(fileInfo.getPath()) && fileEntry != null) {
// delete all props.
SVNVersionedProperties oldBaseProps = adminArea.getBaseProperties(fileEntry.getName());
SVNProperties baseMap = oldBaseProps.asMap();
if (modifiedProps == null) {
modifiedProps = new SVNProperties();
}
for(Iterator names = baseMap.nameSet().iterator(); names.hasNext();) {
String propName = (String) names.next();
if (!modifiedProps.containsName(propName)) {
modifiedProps.put(propName, SVNPropertyValue.create(null));
}
}
}
boolean magicPropsChanged = false;
if (modifiedProps != null && !modifiedProps.isEmpty()) {
magicPropsChanged = modifiedProps.containsName(SVNProperty.EXECUTABLE) ||
modifiedProps.containsName(SVNProperty.NEEDS_LOCK) ||
modifiedProps.containsName(SVNProperty.KEYWORDS) ||
modifiedProps.containsName(SVNProperty.EOL_STYLE) ||
modifiedProps.containsName(SVNProperty.CHARSET) ||
modifiedProps.containsName(SVNProperty.SPECIAL);
}
SVNStatusType propStatus = adminArea.mergeProperties(name, null, fileInfo.copiedBaseProperties,
fileInfo.copiedWorkingProperties, modifiedProps, null, null, true, false, log);
if (modifiedEntryProps != null) {
lockStatus = log.logChangedEntryProperties(name, modifiedEntryProps);
}
if (modifiedWCProps != null) {
log.logChangedWCProperties(name, modifiedWCProps);
}
boolean isLocallyModified = false;
if (fileInfo.copiedWorkingText != null) {
isLocallyModified = true;
} else if (!fileInfo.isExisted) {
isLocallyModified = adminArea.hasTextModifications(name, false, false, false);
} else if (isTextUpdated) {
isLocallyModified = adminArea.hasVersionedFileTextChanges(adminArea.getFile(name),
fileInfo.newBaseFile, false);
}
boolean isReplaced = fileEntry != null && fileEntry.isScheduledForReplacement();
SVNProperties logAttributes = new SVNProperties();
if (fileInfo.isAddExisted) {
logAttributes.put(SVNLog.FORCE_ATTR, "true");
logAttributes.put(SVNProperty.shortPropertyName(SVNProperty.SCHEDULE), "");
}
log.logTweakEntry(name, fileInfo.URL, myTargetRevision);
String absDirPath = adminArea.getRoot().getAbsolutePath().replace(File.separatorChar, '/');
String basePath = null;
if (fileInfo.baseFile != null) {
String absBasePath = fileInfo.baseFile.getAbsolutePath().replace(File.separatorChar, '/');
basePath = absBasePath.substring(absDirPath.length());
if (basePath.startsWith("/")) {
basePath = basePath.substring(1);
}
}
String tmpBasePath = null;
if (fileInfo.newBaseFile != null) {
String absTmpBasePath = fileInfo.newBaseFile.getAbsolutePath().replace(File.separatorChar, '/');
tmpBasePath = absTmpBasePath.substring(absDirPath.length());
if (tmpBasePath.startsWith("/")) {
tmpBasePath = tmpBasePath.substring(1);
}
}
SVNStatusType mergeOutcome = SVNStatusType.UNCHANGED;
File workingFile = adminArea.getFile(name);
boolean deletedCopiedBaseText = false;
if (tmpBasePath != null) {
textStatus = SVNStatusType.CHANGED;
// there is a text to replace the working copy with.