)]}'
{
  "commit": "4837010d858480e186a9aeb7b28dc2555db307d3",
  "tree": "57c9b4cb88846f288949fa0b53b66619f5b0352e",
  "parents": [
    "ea8ad807a0eef55315a251e055405ecdcc4fec41"
  ],
  "author": {
    "name": "Dan Talayco",
    "email": "dtalayco@stanford.edu",
    "time": "Wed Mar 03 15:17:33 2010 -0800"
  },
  "committer": {
    "name": "Dan Talayco",
    "email": "dtalayco@stanford.edu",
    "time": "Wed Mar 03 15:17:33 2010 -0800"
  },
  "message": "Major overhaul of oftest command interface\n\nAdded tests/oft as top level executable\n\nSupport command line options for many config params\n\nUse logging module for output\n\nGot rid of oft_config.py; consolidate configuration in\noft (top level script) and pass around as a dictionary\n\nAdd oft_assert.py (the one useful piece of oft_config that\nremained).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2b47d2a36cd3e82b101abc0730f861073124e94c",
      "old_mode": 33188,
      "old_path": "src/python/oftest/controller.py",
      "new_id": "479a35b31d407481f449dbcff4eefafedd299592",
      "new_mode": 33188,
      "new_path": "src/python/oftest/controller.py"
    },
    {
      "type": "modify",
      "old_id": "29b7fadbdba18f19218e1efc0480d971f2302033",
      "old_mode": 33188,
      "old_path": "src/python/oftest/dataplane.py",
      "new_id": "9389d517a4674a585f6f77de4b9d8fed03f18881",
      "new_mode": 33188,
      "new_path": "src/python/oftest/dataplane.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d773c84179e67395a8a1e7941c95d5bd4cdca349",
      "new_mode": 33188,
      "new_path": "src/python/oftest/oft_assert.py"
    },
    {
      "type": "delete",
      "old_id": "f278846c68c392e57ac90d1244250fcde937802b",
      "old_mode": 33188,
      "old_path": "src/python/oftest/oft_config.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "af1faedb890d9b50d57c86c4f765041b0b38b80c",
      "old_mode": 33188,
      "old_path": "src/python/oftest/parse.py",
      "new_id": "018b70bfe24953b35fe386b8194ca4d9a22b0823",
      "new_mode": 33188,
      "new_path": "src/python/oftest/parse.py"
    },
    {
      "type": "modify",
      "old_id": "f7db5444928549dc12cbe1ae6dac06f8559214d0",
      "old_mode": 33188,
      "old_path": "tests/basic.py",
      "new_id": "268d313640ada742a540a53d4318963ef27f6ada",
      "new_mode": 33188,
      "new_path": "tests/basic.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0a3bc04e3758dce09f3dd0ab13236371c9fe8608",
      "new_mode": 33188,
      "new_path": "tests/local.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1faa8a16aae8f8a52bf59ea0de27aa7c80cae75c",
      "new_mode": 33261,
      "new_path": "tests/oft"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "07779f9b6479ea885faa067978f7168c4643cff5",
      "new_mode": 33188,
      "new_path": "tests/remote.py"
    },
    {
      "type": "modify",
      "old_id": "9d2ad53df22c6d1c452e74994b6c5f8dfe5ebbc6",
      "old_mode": 33188,
      "old_path": "tools/munger/Makefile",
      "new_id": "491c451b888d03de49ec4f359c8683ccb33287f9",
      "new_mode": 33188,
      "new_path": "tools/munger/Makefile"
    }
  ]
}
