)]}'
{
  "commit": "2949151fe9d92b2c3405f188e650d9bb7b46c663",
  "tree": "67aa2ee28ba316b9e8e05a4538814bbe51cd0550",
  "parents": [
    "3a27f415dfa46bd9e5b693abcac708903d3134f4",
    "48716a232a41ad6bda2bfb381e8f84f7d72fede9"
  ],
  "author": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Mar 15 00:52:06 2010 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Mar 15 00:52:06 2010 -0700"
  },
  "message": "Merge branch \u0027jh/notes\u0027\n\n* jh/notes: (33 commits)\n  Documentation: fix a few typos in git-notes.txt\n  notes: fix malformed tree entry\n  builtin-notes: Minor (mostly parse_options-related) fixes\n  builtin-notes: Add \"copy\" subcommand for copying notes between objects\n  builtin-notes: Misc. refactoring of argc and exit value handling\n  builtin-notes: Add -c/-C options for reusing notes\n  builtin-notes: Refactor handling of -F option to allow combining -m and -F\n  builtin-notes: Deprecate the -m/-F options for \"git notes edit\"\n  builtin-notes: Add \"append\" subcommand for appending to note objects\n  builtin-notes: Add \"add\" subcommand for adding notes to objects\n  builtin-notes: Add --message/--file aliases for -m/-F options\n  builtin-notes: Add \"list\" subcommand for listing note objects\n  Documentation: Generalize git-notes docs to \u0027objects\u0027 instead of \u0027commits\u0027\n  builtin-notes: Add \"prune\" subcommand for removing notes for missing objects\n  Notes API: prune_notes(): Prune notes that belong to non-existing objects\n  t3305: Verify that removing notes triggers automatic fanout consolidation\n  builtin-notes: Add \"remove\" subcommand for removing existing notes\n  Teach builtin-notes to remove empty notes\n  Teach notes code to properly preserve non-notes in the notes tree\n  t3305: Verify that adding many notes with git-notes triggers increased fanout\n  ...\n\nConflicts:\n\tMakefile\n",
  "tree_diff": []
}
