use of org.jetbrains.idea.svn.properties.PropertyValue in project intellij-community by JetBrains.
the class SvnMergeProvider method isBinary.
public boolean isBinary(@NotNull final VirtualFile file) {
SvnVcs vcs = SvnVcs.getInstance(myProject);
try {
File ioFile = virtualToIoFile(file);
PropertyClient client = vcs.getFactory(ioFile).createPropertyClient();
PropertyValue value = client.getProperty(SvnTarget.fromFile(ioFile), SvnPropertyKeys.SVN_MIME_TYPE, false, SVNRevision.WORKING);
if (value != null && isBinaryMimeType(value.toString())) {
return true;
}
} catch (VcsException e) {
LOG.warn(e);
}
return false;
}
use of org.jetbrains.idea.svn.properties.PropertyValue in project intellij-community by JetBrains.
the class SvnVcs method getPropertyWithCaching.
@Nullable
public PropertyValue getPropertyWithCaching(final VirtualFile file, final String propName) throws VcsException {
Map<String, Pair<PropertyValue, Trinity<Long, Long, Long>>> cachedMap = myPropertyCache.get(keyForVf(file));
final Pair<PropertyValue, Trinity<Long, Long, Long>> cachedValue = cachedMap == null ? null : cachedMap.get(propName);
final File ioFile = virtualToIoFile(file);
final Trinity<Long, Long, Long> tsTrinity = getTimestampForPropertiesChange(ioFile, file.isDirectory());
if (cachedValue != null) {
// zero means that a file was not found
if (trinitiesEqual(cachedValue.getSecond(), tsTrinity)) {
return cachedValue.getFirst();
}
}
PropertyClient client = getFactory(ioFile).createPropertyClient();
final PropertyValue value = client.getProperty(SvnTarget.fromFile(ioFile, SVNRevision.WORKING), propName, false, SVNRevision.WORKING);
if (cachedMap == null) {
cachedMap = new HashMap<>();
myPropertyCache.put(keyForVf(file), cachedMap);
}
cachedMap.put(propName, Pair.create(value, tsTrinity));
return value;
}
use of org.jetbrains.idea.svn.properties.PropertyValue in project intellij-community by JetBrains.
the class SvnDiffProvider method getCommitMessage.
@Nullable
private String getCommitMessage(@NotNull File path, @NotNull Info info) {
String result;
try {
PropertyValue property = myVcs.getFactory(path).createPropertyClient().getProperty(SvnTarget.fromFile(path), COMMIT_MESSAGE, true, info.getCommittedRevision());
result = PropertyValue.toString(property);
} catch (VcsException e) {
LOG.info("Failed to get commit message for file " + path + ", " + info.getCommittedRevision() + ", " + info.getRevision(), e);
result = "";
}
return result;
}
use of org.jetbrains.idea.svn.properties.PropertyValue in project intellij-community by JetBrains.
the class PropertiesComponent method collectProperties.
private static void collectProperties(@NotNull SvnVcs vcs, @NotNull File file, @NotNull final Map<String, String> props) {
try {
PropertyConsumer handler = new PropertyConsumer() {
public void handleProperty(File path, PropertyData property) throws SVNException {
final PropertyValue value = property.getValue();
if (value != null) {
props.put(property.getName(), PropertyValue.toString(property.getValue()));
}
}
public void handleProperty(SVNURL url, PropertyData property) throws SVNException {
}
public void handleProperty(long revision, PropertyData property) throws SVNException {
}
};
vcs.getFactory(file).createPropertyClient().list(SvnTarget.fromFile(file, SVNRevision.UNDEFINED), SVNRevision.WORKING, Depth.EMPTY, handler);
} catch (VcsException e) {
props.clear();
}
}
use of org.jetbrains.idea.svn.properties.PropertyValue in project intellij-community by JetBrains.
the class SvnPropertiesDiffViewer method collectRecords.
@NotNull
private static List<PropertyRecord> collectRecords(@NotNull SvnPropertiesDiffRequest request) {
List<DiffContent> originalContents = request.getContents();
List<PropertyData> properties1 = getProperties(originalContents.get(0));
List<PropertyData> properties2 = getProperties(originalContents.get(1));
Map<String, PropertyValue> before = new HashMap<>();
Map<String, PropertyValue> after = new HashMap<>();
if (properties1 != null) {
for (PropertyData data : properties1) {
before.put(data.getName(), data.getValue());
}
}
if (properties2 != null) {
for (PropertyData data : properties2) {
after.put(data.getName(), data.getValue());
}
}
List<PropertyRecord> records = new ArrayList<>();
for (String name : ContainerUtil.union(before.keySet(), after.keySet())) {
records.add(createRecord(name, before.get(name), after.get(name)));
}
ContainerUtil.sort(records, (o1, o2) -> StringUtil.naturalCompare(o1.getName(), o2.getName()));
return records;
}
Aggregations