Merge branch 'jk/alternate-ref-optim'
commitb9c2919f9b750cca0b7bcdc84aa30731d591a7b9
authorJunio C Hamano <gitster@pobox.com>
Mon, 27 Feb 2017 21:57:13 +0000 (27 13:57 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 27 Feb 2017 21:57:13 +0000 (27 13:57 -0800)
tree8006945e20a9ac5289429d17f06c446e3e789269
parent93e8cd8b6ee766b35bfd3913f56ba86d63cb6253
parent63d428e656edcd670fa87e74136726096ff3de6f
Merge branch 'jk/alternate-ref-optim'

Optimizes resource usage while enumerating refs from alternate
object store, to help receiving end of "push" that hosts a
repository with many "forks".

* jk/alternate-ref-optim:
  receive-pack: avoid duplicates between our refs and alternates
  receive-pack: treat namespace .have lines like alternates
  receive-pack: fix misleading namespace/.have comment
  receive-pack: use oidset to de-duplicate .have lines
  add oidset API
  fetch-pack: cache results of for_each_alternate_ref
  for_each_alternate_ref: replace transport code with for-each-ref
  for_each_alternate_ref: pass name/oid instead of ref struct
  for_each_alternate_ref: use strbuf for path allocation
  for_each_alternate_ref: stop trimming trailing slashes
  for_each_alternate_ref: handle failure from real_pathdup()