1#ifndef REPLACE_OBJECT_H 2#define REPLACE_OBJECT_H 3 4#include"oidmap.h" 5#include"repository.h" 6#include"object-store.h" 7 8struct replace_object { 9struct oidmap_entry original; 10struct object_id replacement; 11}; 12 13voidprepare_replace_object(struct repository *r); 14 15/* 16 * This internal function is only declared here for the benefit of 17 * lookup_replace_object(). Please do not call it directly. 18 */ 19const struct object_id *do_lookup_replace_object(struct repository *r, 20const struct object_id *oid); 21 22/* 23 * If object sha1 should be replaced, return the replacement object's 24 * name (replaced recursively, if necessary). The return value is 25 * either sha1 or a pointer to a permanently-allocated value. When 26 * object replacement is suppressed, always return sha1. 27 */ 28staticinlineconst struct object_id *lookup_replace_object(struct repository *r, 29const struct object_id *oid) 30{ 31if(!read_replace_refs || 32(r->objects->replace_map && 33 r->objects->replace_map->map.tablesize ==0)) 34return oid; 35returndo_lookup_replace_object(r, oid); 36} 37 38#endif/* REPLACE_OBJECT_H */