Teach revision walking machinery to walk multiple times sequencially

Previously it was not possible to iterate revisions twice using the
revision walking api. We add a reset_revision_walk() which clears the
used flags. This allows us to do multiple sequencial revision walks.

We add the appropriate calls to the existing submodule machinery doing
revision walks. This is done to avoid surprises if future code wants to
call these functions more than once during the processes lifetime.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Heiko Voigt
2012-03-29 09:21:21 +02:00
committed by Junio C Hamano
parent 6f5e880c68
commit bcc0a3ea38
10 changed files with 127 additions and 0 deletions

View File

@ -275,3 +275,14 @@ void object_array_remove_duplicates(struct object_array *array)
array->nr = dst;
}
}
void clear_object_flags(unsigned flags)
{
int i;
for (i=0; i < obj_hash_size; i++) {
struct object *obj = obj_hash[i];
if (obj)
obj->flags &= ~flags;
}
}