)]}'
{
  "commit": "dc81cf377cd25193a9cf044767917e4f5553c285",
  "tree": "c5e941a96229ac5a008b3d538e809f89dbc51093",
  "parents": [
    "e810e0635767afbc9b304d5256fbdb26b59644fa"
  ],
  "author": {
    "name": "Brandon Williams",
    "email": "bmwill@google.com",
    "time": "Fri Jan 27 18:02:05 2017 -0800"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Feb 01 13:46:53 2017 -0800"
  },
  "message": "attr: store attribute stack in attr_check structure\n\nThe last big hurdle towards a thread-safe API for the attribute system\nis the reliance on a global attribute stack that is modified during each\ncall into the attribute system.\n\nThis patch removes this global stack and instead a stack is stored\nlocally in each attr_check instance.  This opens up the opportunity for\nfuture optimizations to customize the attribute stack for the attributes\nthat a particular attr_check struct is interested in.\n\nOne caveat with pushing the attribute stack into the attr_check\nstructure is that the attribute system now needs to keep track of all\nactive attr_check instances.  Due to the direction mechanism the stack\nneeds to be dropped when the direction is switched.  In order to ensure\ncorrectness when the direction is changed the attribute system needs to\niterate through all active attr_check instances and drop each of their\nstacks.\n\nSigned-off-by: Brandon Williams \u003cbmwill@google.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "69643ae77d91b2b5a7a5092f04d71e52481a9b4f",
      "old_mode": 33188,
      "old_path": "attr.c",
      "new_id": "bcee0921d4e6ae15f43564ac9c21dae3a034561d",
      "new_mode": 33188,
      "new_path": "attr.c"
    },
    {
      "type": "modify",
      "old_id": "abebbc19c994cd5643fe6f9371220f63fa44bf1c",
      "old_mode": 33188,
      "old_path": "attr.h",
      "new_id": "6f4961fdb0076e6e0fe14381e96310de1efa1a82",
      "new_mode": 33188,
      "new_path": "attr.h"
    }
  ]
}
