)]}'
{
  "commit": "b9c2919f9b750cca0b7bcdc84aa30731d591a7b9",
  "tree": "8006945e20a9ac5289429d17f06c446e3e789269",
  "parents": [
    "93e8cd8b6ee766b35bfd3913f56ba86d63cb6253",
    "63d428e656edcd670fa87e74136726096ff3de6f"
  ],
  "author": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Feb 27 13:57:13 2017 -0800"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Feb 27 13:57:13 2017 -0800"
  },
  "message": "Merge branch \u0027jk/alternate-ref-optim\u0027\n\nOptimizes resource usage while enumerating refs from alternate\nobject store, to help receiving end of \"push\" that hosts a\nrepository with many \"forks\".\n\n* jk/alternate-ref-optim:\n  receive-pack: avoid duplicates between our refs and alternates\n  receive-pack: treat namespace .have lines like alternates\n  receive-pack: fix misleading namespace/.have comment\n  receive-pack: use oidset to de-duplicate .have lines\n  add oidset API\n  fetch-pack: cache results of for_each_alternate_ref\n  for_each_alternate_ref: replace transport code with for-each-ref\n  for_each_alternate_ref: pass name/oid instead of ref struct\n  for_each_alternate_ref: use strbuf for path allocation\n  for_each_alternate_ref: stop trimming trailing slashes\n  for_each_alternate_ref: handle failure from real_pathdup()\n",
  "tree_diff": []
}
