)]}'
{
  "commit": "ed22b4173bd8d6dbce6236480bd30a63dd54834e",
  "tree": "11c8cbd8ce490c049574cb21c4a37e75d264dfd6",
  "parents": [
    "d31f3ad23dd1aee3c3e1015a43b02b995c01a9a1"
  ],
  "author": {
    "name": "Nguyễn Thái Ngọc Duy",
    "email": "pclouds@gmail.com",
    "time": "Sun Sep 21 10:55:06 2014 +0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Sep 22 12:04:29 2014 -0700"
  },
  "message": "archive: support filtering paths with glob\n\nThis patch fixes two problems with using :(glob) (or even \"*.c\"\nwithout \":(glob)\").\n\nThe first one is we forgot to turn on the \u0027recursive\u0027 flag in struct\npathspec. Without that, tree_entry_interesting() will not mark\npotential directories \"interesting\" so that it can confirm whether\nthose directories have anything matching the pathspec.\n\nThe marking directories interesting has a side effect that we need to\nwalk inside a directory to realize that there\u0027s nothing interested in\nthere. By that time, \u0027archive\u0027 code has already written the (empty)\ndirectory down. That means lots of empty directories in the result\narchive.\n\nThis problem is fixed by lazily writing directories down when we know\nthey are actually needed. There is a theoretical bug in this\nimplementation: we can\u0027t write empty trees/directories that match that\npathspec.\n\npath_exists() is also made stricter in order to detect non-matching\npathspec because when this \u0027recursive\u0027 flag is on, we most likely\nmatch some directories. The easiest way is not consider any\ndirectories \"matched\".\n\nNoticed-by: Peter Wu \u003cpeter@lekensteyn.nl\u003e\nSigned-off-by: Nguyễn Thái Ngọc Duy \u003cpclouds@gmail.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "346f3b2f1ab0d522638475b729274d992d5b82d5",
      "old_mode": 33188,
      "old_path": "archive.c",
      "new_id": "5bdab7b1480f122397264c405f751c2f3547a6af",
      "new_mode": 33188,
      "new_path": "archive.c"
    },
    {
      "type": "modify",
      "old_id": "05f011d38eeaf16e2be8caace5bca697b7a9daf3",
      "old_mode": 33261,
      "old_path": "t/t5000-tar-tree.sh",
      "new_id": "c9abab493ab67f14d6ae65e931e5fbf538aa48d4",
      "new_mode": 33261,
      "new_path": "t/t5000-tar-tree.sh"
    }
  ]
}
