)]}'
{
  "commit": "771bfb6ee69b2e1d63132b6fac66237d93777cb7",
  "tree": "ca6a17268d9e88b6bcd4b880177123877a49e95a",
  "parents": [
    "87615097835bce8ac687e8d7f1993d25f585afab"
  ],
  "author": {
    "name": "Kaushik Lingarkar",
    "email": "klingarkar@nvidia.com",
    "time": "Fri Aug 21 15:15:58 2026 -0700"
  },
  "committer": {
    "name": "Kaushik Lingarkar",
    "email": "klingarkar@nvidia.com",
    "time": "Fri Aug 21 16:28:59 2026 -0700"
  },
  "message": "PackedBatchRefUpdate: Release locks in reverse order of acquisition\n\nPackedBatchRefUpdate#execute takes three locks on the way in. First the\nin-process packed-refs lock, then the loose ref locks, and last is the\npacked-refs lock file. On the way out it unlocked them in a different\norder, the loose refs, then the packed-refs lock file, then the\nin-process lock.\n\nThis change gives each lock its own finally block, scoped to the region\nwhere it is actually held. Every lock is now unlocked in the reverse of\nthe order it was locked. And no path can slip past an unlock, since a\nfailure to release one lock still leaves the enclosing finally blocks to\nrelease the others. Before this, a failure while unlocking the loose\nrefs would have left the packed-refs lock file behind on disk.\n\nChange-Id: Iac7425f9e4fab666b0c04fc6f153789d24950009\nSigned-off-by: Kaushik Lingarkar \u003cklingarkar@nvidia.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cd036007e3d17c7305f97a3fd36cffeb73d44d33",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java",
      "new_id": "12a7031f6908d7a2174ec84547f3d85268ff88d4",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackedBatchRefUpdate.java"
    }
  ]
}
