)]}'
{
  "commit": "75a6315f7416a2fd559d0b0c7352b4f1cd10e186",
  "tree": "55917b990573d03edc34972d2cae484da819d5fb",
  "parents": [
    "07c01b9fd927b35375bd3a7d4d9dbf7bb8509f09"
  ],
  "author": {
    "name": "Brandon Williams",
    "email": "bmwill@google.com",
    "time": "Fri Oct 07 11:18:51 2016 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Oct 10 12:14:58 2016 -0700"
  },
  "message": "ls-files: add pathspec matching for submodules\n\nPathspecs can be a bit tricky when trying to apply them to submodules.\nThe main challenge is that the pathspecs will be with respect to the\nsuperproject and not with respect to paths in the submodule.  The\napproach this patch takes is to pass in the identical pathspec from the\nsuperproject to the submodule in addition to the submodule-prefix, which\nis the path from the root of the superproject to the submodule, and then\nwe can compare an entry in the submodule prepended with the\nsubmodule-prefix to the pathspec in order to determine if there is a\nmatch.\n\nThis patch also permits the pathspec logic to perform a prefix match against\nsubmodules since a pathspec could refer to a file inside of a submodule.\nDue to limitations in the wildmatch logic, a prefix match is only done\nliterally.  If any wildcard character is encountered we\u0027ll simply punt\nand produce a false positive match.  More accurate matching will be done\nonce inside the submodule.  This is due to the superproject not knowing\nwhat files could exist in the submodule.\n\nSigned-off-by: Brandon Williams \u003cbmwill@google.com\u003e\nReviewed-by: Stefan Beller \u003csbeller@google.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ea01d45e5c49a80cf73aec062ef0f6f6471df9d9",
      "old_mode": 33188,
      "old_path": "Documentation/git-ls-files.txt",
      "new_id": "446209e2062df8d0b1c99a25eaaf4dc6f15bce3c",
      "new_mode": 33188,
      "new_path": "Documentation/git-ls-files.txt"
    },
    {
      "type": "modify",
      "old_id": "b6144a56d3f44d83d111997ccdd7cacb5bcafac1",
      "old_mode": 33188,
      "old_path": "builtin/ls-files.c",
      "new_id": "0f25914348e657712bfe252363f4fac3c59a9d84",
      "new_mode": 33188,
      "new_path": "builtin/ls-files.c"
    },
    {
      "type": "modify",
      "old_id": "0ea235f3d643d7a9072aca75d7317d1fd7552b4d",
      "old_mode": 33188,
      "old_path": "dir.c",
      "new_id": "28e97367d9ddc3748ae15f0cc7dbfdccf900190b",
      "new_mode": 33188,
      "new_path": "dir.c"
    },
    {
      "type": "modify",
      "old_id": "da1a858b3a12daba5bd348fcaa342534edaacdb6",
      "old_mode": 33188,
      "old_path": "dir.h",
      "new_id": "97c83bb383a6b1fb5ce58d5e81dead570b73ac43",
      "new_mode": 33188,
      "new_path": "dir.h"
    },
    {
      "type": "modify",
      "old_id": "33a2ea71cf46de046b3c693a4ff8ff5026eabf5f",
      "old_mode": 33261,
      "old_path": "t/t3007-ls-files-recurse-submodules.sh",
      "new_id": "a5426171d3ec652ffc02fc8279bc5802f57204a3",
      "new_mode": 33261,
      "new_path": "t/t3007-ls-files-recurse-submodules.sh"
    }
  ]
}
