)]}'
{
  "commit": "28c23cd4c3902449aff72cb9a4a703220be0d6ac",
  "tree": "5adc4148e4869d55f3e886f6778493facd325921",
  "parents": [
    "0d0ac3826a3bbb9247e39e12623bbcfdd722f24c"
  ],
  "author": {
    "name": "SZEDER Gábor",
    "email": "szeder.dev@gmail.com",
    "time": "Fri Jan 25 13:25:17 2019 +0100"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Sun Jan 27 16:21:09 2019 -0800"
  },
  "message": "strbuf.cocci: suggest strbuf_addbuf() to add one strbuf to an other\n\nThe best way to add one strbuf to an other is via:\n\n  strbuf_addbuf(\u0026sb, \u0026sb2);\n\nThis is a bit more idiomatic and efficient than:\n\n  strbuf_addstr(\u0026sb, sb2.buf);\n\nbecause the size of the second strbuf is known and thus it can spare a\nstrlen() call, and much more so than:\n\n  strbuf_addf(\u0026sb, \"%s\", sb2.buf);\n\nbecause it can spare the whole vsnprintf() formatting magic.\n\nAdd new semantic patches to \u0027contrib/coccinelle/strbuf.cocci\u0027 to catch\nthese undesired patterns and to suggest strbuf_addbuf() instead.\n\nLuckily, our codebase is already clean from any such undesired\npatterns (but one of the in-flight topics just tried to sneak in such\na strbuf_addf() call).\n\nSigned-off-by: SZEDER Gábor \u003cszeder.dev@gmail.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e34eada1ad52933230c7fcace595677747f9e1d6",
      "old_mode": 33188,
      "old_path": "contrib/coccinelle/strbuf.cocci",
      "new_id": "d9ada69b4323f2e9611aa6add5b21a77e622a7c8",
      "new_mode": 33188,
      "new_path": "contrib/coccinelle/strbuf.cocci"
    }
  ]
}
