replace-object: allow prepare_replace_object to handle arbitrary repositories
[gitweb.git] / replace_object.c
index b2405f602745b55673ea2e114c3489310fa0d823..eae52c66f3f69d0a39da5c3761467ae422af5ea5 100644 (file)
@@ -31,16 +31,16 @@ static int register_replace_ref(const char *refname,
        return 0;
 }
 
-static void prepare_replace_object(void)
+static void prepare_replace_object(struct repository *r)
 {
-       if (the_repository->objects->replace_map)
+       if (r->objects->replace_map)
                return;
 
-       the_repository->objects->replace_map =
+       r->objects->replace_map =
                xmalloc(sizeof(*the_repository->objects->replace_map));
-       oidmap_init(the_repository->objects->replace_map, 0);
+       oidmap_init(r->objects->replace_map, 0);
 
-       for_each_replace_ref(register_replace_ref, NULL);
+       for_each_replace_ref(r, register_replace_ref, NULL);
 }
 
 /* We allow "recursive" replacement. Only within reason, though */
@@ -53,12 +53,12 @@ static void prepare_replace_object(void)
  * permanently-allocated value.  This function always respects replace
  * references, regardless of the value of check_replace_refs.
  */
-const struct object_id *do_lookup_replace_object(const struct object_id *oid)
+const struct object_id *do_lookup_replace_object_the_repository(const struct object_id *oid)
 {
        int depth = MAXREPLACEDEPTH;
        const struct object_id *cur = oid;
 
-       prepare_replace_object();
+       prepare_replace_object(the_repository);
 
        /* Try to recursively replace the object */
        while (depth-- > 0) {