)]}'
{
  "commit": "82193b4e8cae0ae70528af041bd16e3c8d3d936d",
  "tree": "7f22bccf2f91e0e8f20ed38afaa2c58527017fbd",
  "parents": [
    "3d6db5b6dae9a56cc81eaab670a40fa505fc6a26"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Thu Feb 06 14:03:56 2025 +0000"
  },
  "committer": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Thu Feb 06 14:07:45 2025 +0000"
  },
  "message": "FetchOne: consider order of create/delete events when replicating deletions\n\nThe previous logic for detecting which refs had to be deleted as a result\nof a replication queue refspecs to be replicated did not take into\nconsideration the order of the create/delete events for the same ref.\n\nAs a result, the multiple create+delete of the same ref was potentially\ncausing missed replication events as it was only resulting into a\ndeletion.\n\nExample:\n1. create refs/foo/bar + delete refs/foo/bar \u003d\u003e delete refs/foo/bar\n2. delete refs/foo/bar + create refs/foo/bar \u003d\u003e create refs/foo/bar\n\nThe step 2. was resulting into a delete refs/foo/bar instead of a create.\n\nMake the extraction of the refs to delete more intelligent so that\nall operations are considered and properly calculated in order for\ngetting the final results of the create + delete of the same ref.\n\nBug: Issue 394760809\nChange-Id: I83d3b38cbb8e3391ca7af2af8ddea245258c4413\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e75c4c3f0538dbd83187e8909929dd043143d9e3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchOne.java",
      "new_id": "5e7fda2c7aeeb10cec4d52317166de8c25d17a61",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchOne.java"
    },
    {
      "type": "modify",
      "old_id": "f85f22a1981edc32a1a419ce97c72c6a3b0c4b82",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchRefSpec.java",
      "new_id": "e41e19461435f0136d34a841502be7637cde5446",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchRefSpec.java"
    },
    {
      "type": "modify",
      "old_id": "49e8d6fab98cae02f3dab3f397eed688d5d5c003",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/pull/FetchOneTest.java",
      "new_id": "73715d6f9254b08df0b4d39909f7d429b5439b4b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/pull/FetchOneTest.java"
    }
  ]
}
