public @NotNull List<GitRebaseEntry> load() throws IOException, NoopException, VcsException {
    String commentChar = GitVersionSpecialty.KNOWS_CORE_COMMENT_CHAR.existsIn(myProject) ?
                         GitUtil.COMMENT_CHAR : "#";

    String encoding = GitConfigUtil.getLogEncoding(myProject, myRoot);
    List<GitRebaseEntry> entries = new ArrayList<>();
    final StringScanner s = new StringScanner(FileUtil.loadFile(myFile, encoding));
    boolean noop = false;
    while (s.hasMoreData()) {
      if (s.isEol() || isComment(s, commentChar)) {
        s.nextLine();
        continue;
      }
      if (s.startsWith("noop")) {
        noop = true;
        s.nextLine();
        continue;
      }
      String command = s.spaceToken();
      final GitRebaseEntry.Action action = GitRebaseEntry.parseAction(command);

      String hash = s.spaceToken();
      while (true) {
        boolean paramConsumed = action.consumeParameter(hash);
        if (!paramConsumed) break;
        hash = s.spaceToken();
      }

      String comment = s.line();
      String subject = trimCommentIfNeeded(comment, commentChar);

      entries.add(new GitRebaseEntry(action, hash, subject));
    }
    if (noop && entries.isEmpty()) {
      throw new NoopException();
    }
    return entries;
  }
public @NotNull List<GitRebaseEntry> load()