)]}'
{
  "commit": "7ccdf65b63f2f4a5e751d70b9788af3c9e16b6ab",
  "tree": "4b13b7802f35f2f7d83cebf95f4ed88635eba6d3",
  "parents": [
    "537e7d61359233e95d2ca6ef6b9059afca8daa81"
  ],
  "author": {
    "name": "Johannes Schindelin",
    "email": "johannes.schindelin@gmx.de",
    "time": "Wed Apr 25 14:29:31 2018 +0200"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Apr 26 12:28:43 2018 +0900"
  },
  "message": "rebase --rebase-merges: avoid \"empty merges\"\n\nThe `git merge` command does not allow merging commits that are already\nreachable from HEAD: `git merge HEAD^`, for example, will report that we\nare already up to date and not change a thing.\n\nIn an interactive rebase, such a merge could occur previously, e.g. when\ncompeting (or slightly modified) versions of a patch series were applied\nupstream, and the user had to `git rebase --skip` all of the local\ncommits, and the topic branch becomes \"empty\" as a consequence.\n\nLet\u0027s teach the todo command `merge` to behave the same as `git merge`.\n\nSeeing as it requires some low-level trickery to create such merges with\nGit\u0027s commands in the first place, we do not even have to bother to\nintroduce an option to force `merge` to create such merge commits.\n\nSigned-off-by: Johannes Schindelin \u003cjohannes.schindelin@gmx.de\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "558efc1af6e20e8abfe664d5c647e14216dc127f",
      "old_mode": 33188,
      "old_path": "sequencer.c",
      "new_id": "afa155c28290ad069e0e2fef64e9447526f8c78f",
      "new_mode": 33188,
      "new_path": "sequencer.c"
    },
    {
      "type": "modify",
      "old_id": "e9c5dc1cd95a334448efbda43d09a3ab0456f1e2",
      "old_mode": 33261,
      "old_path": "t/t3430-rebase-merges.sh",
      "new_id": "1628c8dcc20a4df7a5007efae1ca97a03068b948",
      "new_mode": 33261,
      "new_path": "t/t3430-rebase-merges.sh"
    }
  ]
}
