in src/org/jetbrains/tfsIntegration/core/tfs/conflicts/ResolveConflictHelper.java [180:212]
public static boolean canMerge(final @NotNull Conflict conflict) {
if (conflict.getSrclitem() == null) {
return false;
}
final ChangeTypeMask yourChange = new ChangeTypeMask(conflict.getYchg());
final ChangeTypeMask yourLocalChange = new ChangeTypeMask(conflict.getYlchg());
final ChangeTypeMask baseChange = new ChangeTypeMask(conflict.getBchg());
boolean isNamespaceConflict =
((conflict.getCtype().equals(ConflictType.Get)) || (conflict.getCtype().equals(ConflictType.Checkin))) && conflict.getIsnamecflict();
if (!isNamespaceConflict) {
boolean yourRenamedOrModified = yourChange.containsAny(ChangeType_type0.Rename, ChangeType_type0.Edit);
boolean baseRenamedOrModified = baseChange.containsAny(ChangeType_type0.Rename, ChangeType_type0.Edit);
if (yourRenamedOrModified && baseRenamedOrModified) {
return true;
}
}
if ((conflict.getYtype() != ItemType.Folder) && !isNamespaceConflict) {
if (conflict.getCtype().equals(ConflictType.Merge) && baseChange.contains(ChangeType_type0.Edit)) {
if (yourLocalChange.contains(ChangeType_type0.Edit)) {
return true;
}
if (conflict.getIsforced()) {
return true;
}
if ((conflict.getTlmver() != conflict.getBver()) || (conflict.getYlmver() != conflict.getYver())) {
return true;
}
}
}
return false;
}