Since the <<<, === and >>> cases can only happen at the start of a line shouldn't we test for these before we do the splitting into tokens?  That is, can't we do:

  static Entry parseEntry(String line) {
    line = line.trim();
    if (line.startsWith("#")
        || line.startsWith("<<<<<<<")
        || line.startsWith("========")
        || line.startsWith(">>>>>>>>")
      return null;