)]}'
{
  "commit": "43221cc60541f30db8c80b70ce1f9666cabaf0ad",
  "tree": "e7ed7d33adeb18eadba5b402f9d90d5415cc1590",
  "parents": [
    "60fcf46fa383bd110bfd0037e0c321d37c0da92d"
  ],
  "author": {
    "name": "Ravi Mistry",
    "email": "rmistry@google.com",
    "time": "Tue Oct 06 18:10:34 2026 +0000"
  },
  "committer": {
    "name": "Ravi Mistry",
    "email": "rmistry@google.com",
    "time": "Tue Oct 06 18:10:34 2026 +0000"
  },
  "message": "BlameCache: Add reader for .git-blame-ignore-revs files\n\nMany projects list bulk reformatting and other mechanical commits in a\n.git-blame-ignore-revs file at the root of the repository. git (through\nblame.ignoreRevsFile), GitHub and GitLab use this file to keep those\ncommits out of blame. BlameCache.get() already accepts a set of\nrevisions to ignore, but each caller would have to find, read and parse\nthe file itself.\n\nAdd IgnoreRevFileReader, which reads such a file from the tree of a\ncommit and returns an IgnoreRevsFile record containing the listed\nrevisions, ready to pass to BlameCache.get(). Keeping the reader in the\nblame cache library lets Gitiles and Gerrit share one implementation.\n\nThe format matches git: one full commit SHA-1 per line, \"#\" starts a\ncomment and blank lines are skipped. Unlike git, a malformed line is\nskipped instead of rejecting the whole file. Only regular files are\nread; a directory, symlink or submodule at the path is ignored.\n\nCallers may read the file on every blame request, so reading is\nbounded: files larger than 1 MiB are ignored and at most 20,000\nrevisions are used.\n\nThe BlameCache interface is unchanged.\n\nChange-Id: I381018685e49c327c6ba14a5974386535a311913\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "10c9e48afa3a6fa2fe72759a7e1904d86749e467",
      "new_mode": 33188,
      "new_path": "java/com/google/gitiles/blame/cache/IgnoreRevFileReader.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f16d884c81c5870a8587464729adfc7ba3122e96",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gitiles/blame/cache/IgnoreRevFileReaderTest.java"
    }
  ]
}
