private void getChangedFilesExceptUnmerged(@NotNull Collection<? super String> updated,
                                             @NotNull Collection<? super String> created,
                                             @NotNull Collection<? super String> removed,
                                             @NotNull String revisions) throws VcsException {
    String root = myRoot.getPath();
    GitLineHandler h = new GitLineHandler(myProject, myRoot, GitCommand.DIFF);
    h.setSilent(true);
    // note that moves are not detected here
    h.addParameters("--name-status", "--diff-filter=ADMRUX", "--no-renames", revisions);
    for (StringScanner s = new StringScanner(Git.getInstance().runCommand(h).getOutputOrThrow()); s.hasMoreData(); ) {
      if (s.isEol()) {
        s.nextLine();
        continue;
      }
      char status = s.peek();
      s.boundedToken('\t');
      final String relative = s.line();
      // eliminate conflicts
      if (myUnmergedPaths.contains(relative)) {
        continue;
      }
      String path = root + "/" + GitUtil.unescapePath(relative);
      Collection<? super String> collection = switch (status) {
        case 'M' -> updated;
        case 'A' -> created;
        case 'D' -> removed;
        default -> throw new IllegalStateException("Unexpected status: " + status);
      };
      collection.add(path);
    }
  }
private void getChangedFilesExceptUnmerged(@NotNull Collection<? super String> updated,
                                             @NotNull Collection<? super String> created,
                                             @NotNull Collection<? super String> removed,
                                             @NotNull String revisions)