)]}' { "commit": "9371979628a945a1caf526aeff84a1ac68a22efe", "tree": "dddfeb5a602f799f31a8d62ac5feb72fa2fb06ab", "parents": [ "20860042617d43ed192d60659cd92c71ea251519" ], "author": { "name": "Jonathan Nieder", "email": "jrn@google.com", "time": "Tue Mar 17 11:29:58 2015 -0700" }, "committer": { "name": "Jonathan Nieder", "email": "jrn@google.com", "time": "Tue Mar 17 11:29:58 2015 -0700" }, "message": "Revert \"Implementation of manifest defined githooks\"\n\nThis reverts commit 38e4387f8eb8cffd6359d726c38a7c524fef07e3.\n\nA \"repo init\" followed by \"repo sync\" is meant to be as safe as\n\"git clone\". In particular it should not run arbitrary code provided\nby the manifest owner.\n\nIt would still be nice to have support for manifest-defined git hooks\n--- they\u0027d just need a prompt like the upload RepoHook has. Hopefully\na later change can bring them back.\n\nChange-Id: I5ecd90fb5c2ed64f103d856d1ffcba38a47b062d\nSigned-off-by: Jonathan Nieder \u003cjrn@google.com\u003e\n", "tree_diff": [ { "type": "modify", "old_id": "4b979c79e73580d6e964d3dd746f4c9cefc0472f", "old_mode": 33188, "old_path": "docs/manifest-format.txt", "new_id": "1aa93965b9d51c668952604218877baaae387ad9", "new_mode": 33188, "new_path": "docs/manifest-format.txt" }, { "type": "modify", "old_id": "9472a08fc88757d99f33a36eba858e7abb115746", "old_mode": 33188, "old_path": "manifest_xml.py", "new_id": "890c954de759216f5833c2170b22a3f1f3d39a12", "new_mode": 33188, "new_path": "manifest_xml.py" }, { "type": "modify", "old_id": "c6a91d05dbe3cc24bbd11375362f0c070b324b32", "old_mode": 33188, "old_path": "project.py", "new_id": "028deb5f780637917e62c4de265518c1dfa4d53c", "new_mode": 33188, "new_path": "project.py" }, { "type": "modify", "old_id": "c5bf2823db8fd696aacdc1bd5633ffb34a0882a4", "old_mode": 33188, "old_path": "subcmds/init.py", "new_id": "b73de71c1a3a77c7c5f29941dc21360705dc6867", "new_mode": 33188, "new_path": "subcmds/init.py" } ] }