)]}'
{
  "commit": "d33615ca4eae3f73b8b90e46edefc1584ebf458d",
  "tree": "426721477b2bc0d80bb23d6034bab05bfcc377ec",
  "parents": [
    "ee867cafde59ff6e02c2a1cef07a5fb82423e9ac"
  ],
  "author": {
    "name": "Saša Živkov",
    "email": "sasa.zivkov@sap.com",
    "time": "Fri Oct 12 17:15:48 2018 +0200"
  },
  "committer": {
    "name": "David Pursehouse",
    "email": "dpursehouse@collab.net",
    "time": "Wed Jul 31 23:54:42 2019 +0000"
  },
  "message": "Create missing repository only at the remote we are pushing to\n\nWhen replication of a ref failed due to missing remote repository at one\nremote site, we then initiated creation of the missing repository on all\nremotes where this repository is replicated. The creation of the missing\nrepository is considered to be success if it succeeded for all remotes\nand only in this case the ref replication was rescheduled. This logic\ncould cause a ref replication to not be rescheduled when creation of a\nmissing repository fails in a remote which is unrelated to the current\npush operation. For example, if we replicate to two remote sites:\n\n  [remote \"foo\"]\n    url \u003d https://foo.org/...\n    adminUrl \u003d ssh://gerrit@foo.org/...\n\n  [remote \"bar\"]\n    url \u003d https://bar.org/...\n    adminUrl \u003d ssh://gerrit@bar.org/...\n\nand if during a push to \"foo\" we find that the repository is missing\nthen we will try to create it on both \"foo\" and \"bar\". It could happen\nthat the creation of the missing repository succeeds on \"foo\" and then\nfails on \"bar\" because \"bar\" is unreachable or down at that moment.\nIn this case the replication to \"foo\" will not be rescheduled but it\nshould be as we successfully created the missing repository in \"foo\".\n\nCreate missing repository only under the (admin) URL in the same remote.\n\nNote that there will be one ref replication task for each remote which\nensures that the missing repository will be created in all remotes.\n\nChange-Id: Idbc3f614df53bb3aabcc4cf6cb0d6540e7000e29\n(cherry picked from commit abafb83c47eb50c0ec5ce9a4b8d04dc355d5a5bf)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "293701a3e5eb3d1c2d3214c0cf4e068695c109fb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java",
      "new_id": "6db66743081d493331c6d641f791d731986c4f96",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java"
    },
    {
      "type": "modify",
      "old_id": "2c62b4e7e5ed4a7a49e929c60e2f4c2dcf1fb5a8",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java",
      "new_id": "d57fa2e1a032aa073afb477188d361a11f8ca59c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java"
    }
  ]
}
