replace-objects: evaluate replacement refs without using the object store
commit006f3f28af2afb8c567ef3ddf4f0a9110c6be437
authorStefan Beller <sbeller@google.com>
Tue, 12 Sep 2017 17:31:40 +0000 (12 10:31 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 14 Sep 2017 06:05:54 +0000 (14 15:05 +0900)
tree97d82789224c02b047491ce2b71c03963e048777
parent3c96aa97232367a24eef8b3b387f5ddae5b0c10f
replace-objects: evaluate replacement refs without using the object store

Pass DO_FOR_EACH_INCLUDE_BROKEN when iterating over replacement refs
so that the iteration does not require opening the named objects from
the object store. This avoids a dependency cycle between object access
and replace ref iteration.

Moreover the ref subsystem has not been migrated yet to access the
object store via passed in repository objects.  As a result, without
this patch, iterating over replace refs in a repository other than
the_repository it produces errors:

   error: refs/replace/3afabef75c627b894cccc3bcae86837abc7c32fe does not point to a valid object!

Noticed while adapting the object store (and in particular its
evaluation of replace refs) to handle arbitrary repositories.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c