)]}'
{
  "commit": "6af1f0192ff8740fe77db7cf02c739ccfbdf119c",
  "tree": "944858d4fb8a907b52ea340eefd6b66d5f156393",
  "parents": [
    "2bc2564145835996734d6ed5d1880f85b17233d6"
  ],
  "author": {
    "name": "Junio C Hamano",
    "email": "junkio@cox.net",
    "time": "Sat May 28 00:05:38 2005 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@ppc970.osdl.org",
    "time": "Sun May 29 11:40:40 2005 -0700"
  },
  "message": "[PATCH] Rewrite ls-tree to behave more like \"/bin/ls -a\"\n\nThis is a complete rewrite of ls-tree to make it behave more\nlike what \"/bin/ls -a\" does in the current working directory.\n\nNamely, the changes are:\n\n - Unlike the old ls-tree behaviour that used paths arguments to\n   restrict output (not that it worked as intended---as pointed\n   out in the mailing list discussion, it was quite incoherent),\n   this rewrite uses paths arguments to specify what to show.\n\n - Without arguments, it implicitly uses the root level as its\n   sole argument (\"/bin/ls -a\" behaves as if \".\" is given\n   without argument).\n\n - Without -r (recursive) flag, it shows the named blob (either\n   file or symlink), or the named tree and its immediate\n   children.\n\n - With -r flag, it shows the named path, and recursively\n   descends into it if it is a tree.\n\n - With -d flag, it shows the named path and does not show its\n   children even if the path is a tree, nor descends into it\n   recursively.\n\nThis is still request-for-comments patch.  There is no mailing\nlist consensus that this proposed new behaviour is a good one.\n\nThe patch to t/t3100-ls-tree-restrict.sh illustrates\nuser-visible behaviour changes.  Namely:\n\n * \"git-ls-tree $tree path1 path0\" lists path1 first and then\n   path0.  It used to use paths as an output restrictor and\n   showed output in cache entry order (i.e. path0 first and then\n   path1) regardless of the order of paths arguments.\n\n * \"git-ls-tree $tree path2\" lists path2 and its immediate\n   children but having explicit paths argument does not imply\n   recursive behaviour anymore, hence paths/baz is shown but not\n   paths/baz/b.\n\nSigned-off-by: Junio C Hamano \u003cjunkio@cox.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a113c359c19756786a896002231c6460f8c062c0",
      "old_mode": 33188,
      "old_path": "Documentation/git-ls-tree.txt",
      "new_id": "958b56d8f408e5a351c358197a9f5ab9eb986454",
      "new_mode": 33188,
      "new_path": "Documentation/git-ls-tree.txt"
    },
    {
      "type": "modify",
      "old_id": "26cea3ff02212293edae0602f4398cbad1e894f2",
      "old_mode": 33188,
      "old_path": "ls-tree.c",
      "new_id": "d2a57d0b472deb09b8e1155be1edcea506171a16",
      "new_mode": 33188,
      "new_path": "ls-tree.c"
    },
    {
      "type": "modify",
      "old_id": "70fa9acee76cf0feb47ce2fb66581aabe10ac8bb",
      "old_mode": 33188,
      "old_path": "t/t3100-ls-tree-restrict.sh",
      "new_id": "02d93ebe6f5c024b6684e00df5f764cfce1aed1a",
      "new_mode": 33188,
      "new_path": "t/t3100-ls-tree-restrict.sh"
    },
    {
      "type": "modify",
      "old_id": "d448daeab172a2a8b1a1c0624319f3f0096d40c0",
      "old_mode": 33188,
      "old_path": "tree.c",
      "new_id": "aa55ddb6846bdc33abf9d41424d105e1b2331640",
      "new_mode": 33188,
      "new_path": "tree.c"
    },
    {
      "type": "modify",
      "old_id": "1383beb2bf11f66bc34246acc5d843866ae680c9",
      "old_mode": 33188,
      "old_path": "tree.h",
      "new_id": "056bd86fa9e5a62207bd52fbb124f080e8854253",
      "new_mode": 33188,
      "new_path": "tree.h"
    }
  ]
}
