)]}'
{
  "commit": "ec55559f937727bcb0fa8a3dfe6af68c188e968a",
  "tree": "c77a367930b6be70b01348c443fd09c4a1e8e836",
  "parents": [
    "5a7da2dca166fab74f4514697e26dd80e79933f5"
  ],
  "author": {
    "name": "Aaron Schrab",
    "email": "aaron@schrab.com",
    "time": "Sun Jan 13 00:17:03 2013 -0500"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Fri Jan 18 11:13:22 2013 -0800"
  },
  "message": "push: Add support for pre-push hooks\n\nAdd support for a pre-push hook which can be used to determine if the\nset of refs to be pushed is suitable for the target repository.  The\nhook is run with two arguments specifying the name and location of the\ndestination repository.\n\nInformation about what is to be pushed is provided by sending lines of\nthe following form to the hook\u0027s standard input:\n\n  \u003clocal ref\u003e SP \u003clocal sha1\u003e SP \u003cremote ref\u003e SP \u003cremote sha1\u003e LF\n\nIf the hook exits with a non-zero status, the push will be aborted.\n\nThis will allow the script to determine if the push is acceptable based\non the target repository and branch(es), the commits which are to be\npushed, and even the source branches in some cases.\n\nSigned-off-by: Aaron Schrab \u003caaron@schrab.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b9003fed248651a7783e042c2e3668cf3ff90d0f",
      "old_mode": 33188,
      "old_path": "Documentation/githooks.txt",
      "new_id": "d839233dff1de93822378122e7964e3708877bbc",
      "new_mode": 33188,
      "new_path": "Documentation/githooks.txt"
    },
    {
      "type": "modify",
      "old_id": "8491e431e41aaff32c76ab0c61f528682b3babdb",
      "old_mode": 33188,
      "old_path": "builtin/push.c",
      "new_id": "b158028be81e38c37ec8dd69506cdc662ff1379b",
      "new_mode": 33188,
      "new_path": "builtin/push.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6f9916a3901caa71b6a1994b6091b629a4397473",
      "new_mode": 33261,
      "new_path": "t/t5571-pre-push-hook.sh"
    },
    {
      "type": "modify",
      "old_id": "2673d273ff3aa5530ee57e8a3916bbbbc802466d",
      "old_mode": 33188,
      "old_path": "transport.c",
      "new_id": "0750a5fbbee7f192ce90d3d800921435cbb6208a",
      "new_mode": 33188,
      "new_path": "transport.c"
    },
    {
      "type": "modify",
      "old_id": "bfd2df5823aac55e4ce8674b7980cccabf0fed5f",
      "old_mode": 33188,
      "old_path": "transport.h",
      "new_id": "ac5a9f57d1051ba74fbf641f11d8c965faf8f078",
      "new_mode": 33188,
      "new_path": "transport.h"
    }
  ]
}
