)]}'
{
  "commit": "f2a5d4fcdeee7fb20e01dffa673b5cace544e87a",
  "tree": "69e5e39e061529ca4b60511d231a8f4741df268d",
  "parents": [
    "db1de2bcf0d94d2c109e319fa05539c026d04777"
  ],
  "author": {
    "name": "Antonio Barone",
    "email": "syntonyze@gmail.com",
    "time": "Mon Nov 25 17:26:04 2024 +0100"
  },
  "committer": {
    "name": "Antonio Barone",
    "email": "syntonyze@gmail.com",
    "time": "Fri May 30 10:06:40 2025 +0000"
  },
  "message": "Handle project deletion\n\nHandle the removal of a project with a soft-delete approach.  Rather\nthan executing a table scan that might be heavy from a latency and from\na RCUs consumption prospective, we flag the existing items as obsolete\nby bumping up a project version refSpec in the form of `|project-name`,\nto which we associate the current version `version`.\n\nThis way, deleting a project is just as simple as bumping up its version\nvalue.\n\nWe then prepend the current version to the refSpec when looking up\nitems, so that we can easily ignore obsolete entries.\n\nFor example, if a project `foo` is deleted a new entry is created as\nsuch:\n\n| refPath | refValue |\n| |foo    | 1        |\n\nIf then a new project is created, new refSpecs will be prefixed with the\nnew project version:\n\n| refPath                  | refValue    |\n| |1/foo/refs/heads/master | 3355b5b8b73 |\n\nWe selected the pipe symbol (|) as a prefix because it is prohibited in\nrepository names, ensuring no ambiguity arises with actual repository\nnames.\n\nChange-Id: I2cfdf2e812c9e68735b66eef3b756ec6084bf697\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "933fd3f836dca86d285c823335b9840935f75866",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabase.java",
      "new_id": "d78ef2d40a7268a1246d7840f7e43105c1827cb4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabase.java"
    },
    {
      "type": "modify",
      "old_id": "38b6dc8278895867797ef509e4964a7cf3d89651",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabaseIT.java",
      "new_id": "69d671a149a24618f55c9181bf087407c6e5273e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabaseIT.java"
    }
  ]
}
