From 86a0a408b900eecc9d0d4a1eb8ae223181e96679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scharfe?= Date: Sat, 1 Oct 2011 18:16:08 +0200 Subject: commit: factor out clear_commit_marks_for_object_array Factor out the code to clear the commit marks for a whole struct object_array from builtin/checkout.c into its own exported function clear_commit_marks_for_object_array and use it in bisect and bundle as well. It handles tags and commits and ignores objects of any other type. Signed-off-by: Rene Scharfe Signed-off-by: Junio C Hamano --- commit.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'commit.c') diff --git a/commit.c b/commit.c index ac337c7d7..4d80f2522 100644 --- a/commit.c +++ b/commit.c @@ -440,6 +440,20 @@ void clear_commit_marks(struct commit *commit, unsigned int mark) } } +void clear_commit_marks_for_object_array(struct object_array *a, unsigned mark) +{ + struct object *object; + struct commit *commit; + unsigned int i; + + for (i = 0; i < a->nr; i++) { + object = a->objects[i].item; + commit = lookup_commit_reference_gently(object->sha1, 1); + if (commit) + clear_commit_marks(commit, mark); + } +} + struct commit *pop_commit(struct commit_list **stack) { struct commit_list *top = *stack; -- cgit v1.2.1