)]}'
{
  "commit": "9071c078af637573a3068c6920dd4ceff6a5a69f",
  "tree": "71590a61a533ec630a6af98f411725d5cfdb1116",
  "parents": [
    "046b48239eca34425909330e59da57f5fd421bdc"
  ],
  "author": {
    "name": "Stefan Beller",
    "email": "sbeller@google.com",
    "time": "Wed May 31 17:30:48 2017 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Jun 01 10:36:36 2017 +0900"
  },
  "message": "builtin/grep.c: respect \u0027submodule.recurse\u0027 option\n\nIn builtin/grep.c we parse the config before evaluating the command line\noptions. This makes the task of teaching grep to respect the new config\noption \u0027submodule.recurse\u0027 very easy by just parsing that option.\n\nAs an alternative I had implemented a similar structure to treat\nsubmodules as the fetch/push command have, including\n* aligning the meaning of the \u0027recurse_submodules\u0027 to possible submodule\n  values RECURSE_SUBMODULES_* as defined in submodule.h.\n* having a callback to parse the value and\n* reacting to the RECURSE_SUBMODULES_DEFAULT state that was the initial\n  state.\n\nHowever all this is not needed for a true boolean value, so let\u0027s keep\nit simple. However this adds another place where \"submodule.recurse\" is\nparsed.\n\nSigned-off-by: Stefan Beller \u003csbeller@google.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b1095362fbf9a4726367b96e0f34d38faf27d9bd",
      "old_mode": 33188,
      "old_path": "builtin/grep.c",
      "new_id": "454e26382006f3ed872fa8150f37f595706010b6",
      "new_mode": 33188,
      "new_path": "builtin/grep.c"
    },
    {
      "type": "modify",
      "old_id": "3a58197f472f38c320de33fa82896c0a77d125ae",
      "old_mode": 33261,
      "old_path": "t/t7814-grep-recurse-submodules.sh",
      "new_id": "7184113b9b2b381a6e7e0def8a8c1ba06771f8a6",
      "new_mode": 33261,
      "new_path": "t/t7814-grep-recurse-submodules.sh"
    }
  ]
}
