public static boolean canMerge()

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;
  }