)]}'
{
  "commit": "011b10d3c8a5bc6a4e96f2f85e3322d4850f9ec5",
  "tree": "4284d5e30ba71a97fadf950cad3ed5c88d37f0b6",
  "parents": [
    "7a977b221e16adc5c5aa163d4150b6bf24a79985"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Sat Mar 08 01:18:46 2025 +0000"
  },
  "committer": {
    "name": "Álvaro Vilaplana García",
    "email": "alvaro.vilaplana@gmail.com",
    "time": "Tue Mar 18 02:20:46 2025 -0700"
  },
  "message": "Add sentinel to prevent out of sync with global-refdb\n\nMake sure the the global refdb is never updated to a value that is\ndifferent from the local refdb. It may happen that a local operation has\nan undetected failure that causes the global-refdb to be updated to a\nnon-existent value. By checking that the target SHA1 always corresponds\nto the local refdb value, any discrepancy would result in an error to\nthe client and avoid to update the global refdb.\n\nThis sentinel should never be needed in Gerrit, however it sometimes\nhappens that the operation fails at Git level and the ref isn\u0027t updated\nas expected. Prevent nasty out of sync that would require a Gerrit admin\nto action and solve them one-by-one.\n\nChange-Id: If30079abd39f17f3859aa3f8b300b65cc0b7f117\n(cherry picked from commit 669d5bad4c04ead5c800d999362fa9aced9888ec)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0168f2fb21e5e4a80b050beefbcf9a0bbddb6da2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java",
      "new_id": "8586e3ed297cad2010d7aaddba5e314d8f0f73e0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java"
    },
    {
      "type": "modify",
      "old_id": "c9a6c7d9a7b5589d24b525f982da978ab871dda7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDatabaseWrapper.java",
      "new_id": "b973602c3f14385671751e341027c4e1395649b8",
      "new_mode": 33188,
      "new_path": "src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDatabaseWrapper.java"
    },
    {
      "type": "modify",
      "old_id": "e5d3409a6c1c2a0c3f8f508adf77f8ed5583f2b9",
      "old_mode": 33188,
      "old_path": "src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java",
      "new_id": "893a16ab8ff34ee3fbc2b616bf348ca6f81ae871",
      "new_mode": 33188,
      "new_path": "src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java"
    },
    {
      "type": "modify",
      "old_id": "3c63d134a2a3b7409aae87d366525b68b26dfb7f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidatorTest.java",
      "new_id": "d686bf8fbc2b3159df1b5d8b355b5351bb986fb7",
      "new_mode": 33188,
      "new_path": "src/test/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidatorTest.java"
    },
    {
      "type": "modify",
      "old_id": "365f38296287c65718cb572434378d060769900c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdateTest.java",
      "new_id": "cfa1be55fcad4f8e637a1f69d89c00119b2034de",
      "new_mode": 33188,
      "new_path": "src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdateTest.java"
    }
  ]
}
