)]}'
{
  "commit": "5821988f97b827f6ba81dfeebff932067c88ba6c",
  "tree": "f12d10aef8c33298e95b6a7234d7732509833571",
  "parents": [
    "f531e463f0471ce41c51e19074a118482f36910f"
  ],
  "author": {
    "name": "Johannes Sixt",
    "email": "johannes.sixt@telecom.at",
    "time": "Fri Jun 27 09:22:01 2008 +0200"
  },
  "committer": {
    "name": "Shawn O. Pearce",
    "email": "spearce@spearce.org",
    "time": "Wed Jul 02 01:06:38 2008 -0400"
  },
  "message": "git-gui: Implement \"Stage/Unstage Line\"\n\nThis adds a context menu entry below \"Stage/Unstage Hunk\" that stages or\nunstages just the line under the mouse pointer.\n\nThis is by itself useful, for example, if there are unrelated changes in\nthe same hunk and the hunk cannot be split by reducing the context.\n\nThe feature can also be used to split a hunk by staging a number of\nadditions (or unstaging a number of removals) until there are enough\ncontext lines that the hunk gets split.\n\nThe implementation reads the complete hunk that the line lives in, and\nconstructs a new hunk by picking existing context lines, removing unneeded\nchange lines and transforming other change lines to context lines. The\nresulting hunk is fed through \u0027git apply\u0027 just like in the \"Stage/Unstage\nHunk\" case.\n\nSigned-off-by: Johannes Sixt \u003cjohannes.sixt@telecom.at\u003e\nSigned-off-by: Shawn O. Pearce \u003cspearce@spearce.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1bbae15a50353f9568b5d87b1cafc01134164478",
      "old_mode": 33261,
      "old_path": "git-gui.sh",
      "new_id": "d89f156fd54fe5e51e00793b908ce220e6aa91c8",
      "new_mode": 33261,
      "new_path": "git-gui.sh"
    },
    {
      "type": "modify",
      "old_id": "d04f6dbde2c468274770aa5543758186803e9ac5",
      "old_mode": 33188,
      "old_path": "lib/diff.tcl",
      "new_id": "96ba94906cf8037b58c2ba135654da840f9fff9a",
      "new_mode": 33188,
      "new_path": "lib/diff.tcl"
    }
  ]
}
