)]}'
{
  "commit": "6066b0c4f0e83e546708954a06b599f8c338e54b",
  "tree": "0cbf1d8b6c21eda779b7a9fd912384ae69b2d16d",
  "parents": [
    "c8bbbce7d1dd32540389fda895453ef43ea7af6b"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Sat Mar 18 00:11:32 2023 +0000"
  },
  "committer": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Thu Mar 23 14:05:21 2023 +0000"
  },
  "message": "Allow FetchOne to retry the failed ref only\n\nFetchOne may contain more than one ref to be fetched: the failure\nof one of them could block the whole set of fetches, causing an\nunwanted replication delay.\n\nEnable the possibility for a FetchOne to partially complete,\nleaving a leftover of failed refs that can be rescheduled and\nretried individually.\n\nThis new behaviour has the immediate advantage of not delaying\nthe replication of refs that have no replication issues and still\nassures that the failed replication events are going to be\nrescheduled for retry, if the cause of the failure was not a\npermanent exception.\n\nAlso fix the raising of the correct exception when executing\nFetchOne with a CGit backend.\n\nTested E2E using CGit and JGit and aggregating a valid ref\nand a non-existent one: the valid gets replicated and the invalid\nis detected and traced.\n\nBug: Issue 16742\nChange-Id: I093ce3a780313ada18323af7aaca391791b93441\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "43db9072b619111d2ae4b79068f41fb78828d89e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchOne.java",
      "new_id": "a99f237005650ce59967dce5aa92f4624c28172b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchOne.java"
    },
    {
      "type": "modify",
      "old_id": "db7728b538ff51ea99dee990a62305880c58281b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/Source.java",
      "new_id": "0162ad068dff65cf367a1cb244e3aa85dba9d7a7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/Source.java"
    },
    {
      "type": "modify",
      "old_id": "c404e302ce41c93030f7dc533205b734cfbb2e3f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/fetch/CGitFetch.java",
      "new_id": "13d1a28db84b55802eac1b9f1ec819bbfecf0d9c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/fetch/CGitFetch.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7c2e63719f27b2722bf9a28ce828e7614e718fe3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/fetch/InexistentRefTransportException.java"
    },
    {
      "type": "modify",
      "old_id": "74ad9fc85d39ecfab721d9775e4395f3f6e58505",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/fetch/JGitFetch.java",
      "new_id": "350428066260343a34ad7b6bedc2a1501b713773",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/fetch/JGitFetch.java"
    },
    {
      "type": "modify",
      "old_id": "1d96a0222ecf4b3d4750f595a214000b97de62ef",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/fetch/PermanentTransportException.java",
      "new_id": "acb68cf7a3bffb7c52ad77745e7669715d3aff34",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/fetch/PermanentTransportException.java"
    },
    {
      "type": "modify",
      "old_id": "b76585eadc48e3d89e8a5e254a3a01382c896f10",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/config.md",
      "new_id": "eab5fe66961d691d3eb4104c1944cf2cd5b81125",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/config.md"
    },
    {
      "type": "modify",
      "old_id": "fb4fb0424392f2be388176cf725dbe90692a351b",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/pull/PermanentFailureExceptionTest.java",
      "new_id": "09a465c132e3f8bb35a95d8c204dc6b411a9590e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/pull/PermanentFailureExceptionTest.java"
    }
  ]
}
