)]}'
{
  "commit": "9153983310a169a340bd1023dccafd80b70b05bc",
  "tree": "42e14e263a3e5ff3897cdba623d1d46d59e8c88a",
  "parents": [
    "db89665fbf86d4e0166b2f252a939ed8bf6782fe"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@osdl.org",
    "time": "Mon Apr 17 11:59:32 2006 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "junkio@cox.net",
    "time": "Mon Apr 17 15:18:25 2006 -0700"
  },
  "message": "Log message printout cleanups\n\nOn Sun, 16 Apr 2006, Junio C Hamano wrote:\n\u003e\n\u003e In the mid-term, I am hoping we can drop the generate_header()\n\u003e callchain _and_ the custom code that formats commit log in-core,\n\u003e found in cmd_log_wc().\n\nOk, this was nastier than expected, just because the dependencies between\nthe different log-printing stuff were absolutely _everywhere_, but here\u0027s\na patch that does exactly that.\n\nThe patch is not very easy to read, and the \"--patch-with-stat\" thing is\nstill broken (it does not call the \"show_log()\" thing properly for\nmerges). That\u0027s not a new bug. In the new world order it _should_ do\nsomething like\n\n\tif (rev-\u003elogopt)\n\t\tshow_log(rev, rev-\u003elogopt, \"---\\n\");\n\nbut it doesn\u0027t. I haven\u0027t looked at the --with-stat logic, so I left it\nalone.\n\nThat said, this patch removes more lines than it adds, and in particular,\nthe \"cmd_log_wc()\" loop is now a very clean:\n\n\twhile ((commit \u003d get_revision(rev)) !\u003d NULL) {\n\t\tlog_tree_commit(rev, commit);\n\t\tfree(commit-\u003ebuffer);\n\t\tcommit-\u003ebuffer \u003d NULL;\n\t}\n\nso it doesn\u0027t get much prettier than this. All the complexity is entirely\nhidden in log-tree.c, and any code that needs to flush the log literally\njust needs to do the \"if (rev-\u003elogopt) show_log(...)\" incantation.\n\nI had to make the combined_diff() logic take a \"struct rev_info\" instead\nof just a \"struct diff_options\", but that part is pretty clean.\n\nThis does change \"git whatchanged\" from using \"diff-tree\" as the commit\ndescriptor to \"commit\", and I changed one of the tests to reflect that new\nreality. Otherwise everything still passes, and my other tests look fine\ntoo.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Junio C Hamano \u003cjunkio@cox.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9bd27f82ec1d7c313987325a4948a5eed8c9b799",
      "old_mode": 33188,
      "old_path": "combine-diff.c",
      "new_id": "b4fa9c9f68bc814bd965db01bbbd7a1d8c2b6664",
      "new_mode": 33188,
      "new_path": "combine-diff.c"
    },
    {
      "type": "modify",
      "old_id": "3e7f5f105b19fd47fd8b3716617592ec2a60da47",
      "old_mode": 33188,
      "old_path": "diff-files.c",
      "new_id": "ffbef48b2e05869a0a74ea7df53ee80106aa81b3",
      "new_mode": 33188,
      "new_path": "diff-files.c"
    },
    {
      "type": "modify",
      "old_id": "e5787985373739dee8dd8874ea9f8f6ff073af27",
      "old_mode": 33188,
      "old_path": "diff-tree.c",
      "new_id": "7207867a74d0869c6a6b839c040321c843ee9c2f",
      "new_mode": 33188,
      "new_path": "diff-tree.c"
    },
    {
      "type": "modify",
      "old_id": "f783baef14604678d1e638cc766bffdbdc43f691",
      "old_mode": 33188,
      "old_path": "diff.h",
      "new_id": "52fff6643ffe375e18cab6c8a3af6d5c11c8cd6d",
      "new_mode": 33188,
      "new_path": "diff.h"
    },
    {
      "type": "modify",
      "old_id": "fc4e4292781d0aab39abaede2e872fce557a434b",
      "old_mode": 33188,
      "old_path": "git.c",
      "new_id": "016fa30d37ed343609e5d3fd8ec43881de91f561",
      "new_mode": 33188,
      "new_path": "git.c"
    },
    {
      "type": "modify",
      "old_id": "af36f702e16daace6781a3b044c456062692aad4",
      "old_mode": 33188,
      "old_path": "log-tree.c",
      "new_id": "c0a44320223a4d868f397c1a2338f6a44a64fffb",
      "new_mode": 33188,
      "new_path": "log-tree.c"
    },
    {
      "type": "modify",
      "old_id": "91a909be73130b8542ed9092e120084bb263105b",
      "old_mode": 33188,
      "old_path": "log-tree.h",
      "new_id": "a26e4841ff9f568f8536f286e3fc40f09b9dff3b",
      "new_mode": 33188,
      "new_path": "log-tree.h"
    },
    {
      "type": "modify",
      "old_id": "d3c0dd90e3cb94b253189b4968141b771caeabf5",
      "old_mode": 33188,
      "old_path": "rev-list.c",
      "new_id": "a4d72af6e01d88aa41962736d9a52f58bf65aad7",
      "new_mode": 33188,
      "new_path": "rev-list.c"
    },
    {
      "type": "modify",
      "old_id": "f8fb02885589e3243b4b44692594861f98843d69",
      "old_mode": 33188,
      "old_path": "revision.c",
      "new_id": "5abec18bc1ce161a2964dfa89f967ec7a0ec2fde",
      "new_mode": 33188,
      "new_path": "revision.c"
    },
    {
      "type": "modify",
      "old_id": "74dc5ef179e9778b874ceee7aefc6162892b116a",
      "old_mode": 33188,
      "old_path": "revision.h",
      "new_id": "05f658a214a7e1ca7e009c0de9667bf66552dc47",
      "new_mode": 33188,
      "new_path": "revision.h"
    },
    {
      "type": "modify",
      "old_id": "10024133e3e69af0d14200d23c00d1ba7d1dbf74",
      "old_mode": 33261,
      "old_path": "t/t1200-tutorial.sh",
      "new_id": "16b3ea915776e976890dfc5a9a9748c92de2d3fb",
      "new_mode": 33261,
      "new_path": "t/t1200-tutorial.sh"
    }
  ]
}
