)]}'
{
  "commit": "756d349cb3a16652568aad46b34f2eb9c3d04a36",
  "tree": "e37ed930b3a2ac6f289b0c4777ce095256f2c7b1",
  "parents": [
    "92739eae5e8c50fe454b351021067eea7985e12a"
  ],
  "author": {
    "name": "Jacek Centkowski",
    "email": "geminica.programs@gmail.com",
    "time": "Fri Oct 08 17:13:30 2021 +0200"
  },
  "committer": {
    "name": "Jacek Centkowski",
    "email": "geminica.programs@gmail.com",
    "time": "Thu Nov 18 08:23:36 2021 +0100"
  },
  "message": "Add possibility to split large pushes to remote into batches\n\nAllow to split push with a large number of refs into smaller,\nsize-configurable batches to:\n1. allow task cancellation - after each batch gets pushed operation can\n   be checked if it was requested to stop\n2. set push operation timeout more predictably, with this parameter set\n   one can more definitely specify when timeout should occur\n3. successfully push to remotes like GitHub, GitLab that enforce limits\n   on the number of refs that could be accepted in a single push operation\n\nNote that in case when failure occurs all batches in push are re-attempted\n(similarly to what it is now) but refs already pushed result in \u0027UP_TO_DATE\u0027\nstatus.\n\nOne can specify the batch size for all remotes with \u0027gerrit.pushBatchSize\u0027\nparameter of \u0027replication.config\u0027. It can be also overridden at remote-level\nby setting `pushBatchSize`.\n\nBy default `0` is assumed which means that there is no limitation on number\nof refs in a single push operation (current behaviour is preserved). Note\nthat negative values are treated as `0`.\n\nNote that when \u0027Cluster Replication\u0027 is enabled pushInBatches results in\nmore (they happen also when pushInBatches is disabled but in lower\nnumber) ERROR log entries like\n\n  EERROR com.googlesource.gerrit.plugins.replication.ReplicationTasksStorage : Error while deleting task...\n\nTherefore pushInBatches is disabled in that case (even if positive value\nis given globaly or for specific remote) and warning is logged once per\nremote.\n\nBug: Issue 13216\nChange-Id: I1514855cbb5ac0ea78397a17eb1c5926bf07a4a3\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "400d6ff1ee8b778f5801f50ef947cb4693ff8696",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java",
      "new_id": "00a46deb6b671f5c4a7d37d5946444ec6183f611",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java"
    },
    {
      "type": "modify",
      "old_id": "1b39374d00349db8d3c96335508dfa3755b7d629",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/DestinationConfiguration.java",
      "new_id": "a74d198153d07fab274bfc01a965092c4ae9dab8",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/DestinationConfiguration.java"
    },
    {
      "type": "modify",
      "old_id": "87c35ee715df1a639bf473bf37a6ffa8aa3019f3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java",
      "new_id": "8b3c9e2ca5974f23a76ff04edd18a3cd47f2274f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java"
    },
    {
      "type": "modify",
      "old_id": "b66e73c6dd2581c4a7edec4c6813680ebf5cfdb6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/RemoteConfiguration.java",
      "new_id": "5fe032311e7cf53a2c5e54144675ee193d374c23",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/RemoteConfiguration.java"
    },
    {
      "type": "modify",
      "old_id": "2d020224d1c127f1b8f74a86b5c038ab5840bca7",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/config.md",
      "new_id": "5c8e2c7b697acd2a53ff2d8412a53885c22075de",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/config.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "646f91585eda7f7fff26eed47ac14a268391e86c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/DestinationConfigurationTest.java"
    },
    {
      "type": "modify",
      "old_id": "94f0dc4861588c02f4305502cb602c8c3163f9c5",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/PushOneTest.java",
      "new_id": "bb3e88601f564f69c18c30b0da200bf8f304e15b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/PushOneTest.java"
    },
    {
      "type": "modify",
      "old_id": "9606371a032aa572477a270ab5a85b9cf550e1d5",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationDaemon.java",
      "new_id": "b6a3ed1214a59d2debafcb72ef4ae2cc00c3db91",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationDaemon.java"
    },
    {
      "type": "modify",
      "old_id": "a174e910f00ffa52f8f1aa779251f1aed046bdb1",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java",
      "new_id": "33bd91de335d5bf13575831a713dfe912e261085",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cf8dbe3e11aef9152892d67349f6d6a674b1ce5e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationPushInBatchesIT.java"
    }
  ]
}
