)]}'
{
  "commit": "5644419d04a6bb25c36c965acf0da0e700f1bd3f",
  "tree": "878996b3a79193bbfd50eee165ed0613cf150485",
  "parents": [
    "d637a267d8b0e4423c5d339e5de325c7334ecb8e",
    "3745e2693de3dd5420221782ed050cae6ebf6fec"
  ],
  "author": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Apr 07 16:54:09 2021 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Apr 07 16:54:09 2021 -0700"
  },
  "message": "Merge branch \u0027ab/fsck-api-cleanup\u0027\n\nFsck API clean-up.\n\n* ab/fsck-api-cleanup:\n  fetch-pack: use new fsck API to printing dangling submodules\n  fetch-pack: use file-scope static struct for fsck_options\n  fetch-pack: don\u0027t needlessly copy fsck_options\n  fsck.c: move gitmodules_{found,done} into fsck_options\n  fsck.c: add an fsck_set_msg_type() API that takes enums\n  fsck.c: pass along the fsck_msg_id in the fsck_error callback\n  fsck.[ch]: move FOREACH_FSCK_MSG_ID \u0026 fsck_msg_id from *.c to *.h\n  fsck.c: give \"FOREACH_MSG_ID\" a more specific name\n  fsck.c: undefine temporary STR macro after use\n  fsck.c: call parse_msg_type() early in fsck_set_msg_type()\n  fsck.h: re-order and re-assign \"enum fsck_msg_type\"\n  fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enum\n  fsck.c: refactor fsck_msg_type() to limit scope of \"int msg_type\"\n  fsck.c: rename remaining fsck_msg_id \"id\" to \"msg_id\"\n  fsck.c: remove (mostly) redundant append_msg_id() function\n  fsck.c: rename variables in fsck_set_msg_type() for less confusion\n  fsck.h: use \"enum object_type\" instead of \"int\"\n  fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}\n  fsck.c: refactor and rename common config callback\n",
  "tree_diff": []
}
