summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-01-25 17:13:02 -0800
committerJunio C Hamano <gitster@pobox.com>2009-01-25 17:13:02 -0800
commitf18e6bef23809d2823c1a687f375b22c6af0e735 (patch)
tree3b9c79bbd3307ca49a36b142435937db12dbb2b8 /object.c
parent45099df6d7d83b30300f8efa3f6b831d6132c687 (diff)
parentb2a6d1c6868b6d5e7d2b4fa9129341220a1e848a (diff)
downloadgit-f18e6bef23809d2823c1a687f375b22c6af0e735.tar.gz
Merge branch 'js/maint-all-implies-HEAD'
* js/maint-all-implies-HEAD: bundle: allow the same ref to be given more than once revision walker: include a detached HEAD in --all
Diffstat (limited to 'object.c')
-rw-r--r--object.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/object.c b/object.c
index 50b6528001..7e6a92c88e 100644
--- a/object.c
+++ b/object.c
@@ -268,3 +268,22 @@ void add_object_array_with_mode(struct object *obj, const char *name, struct obj
objects[nr].mode = mode;
array->nr = ++nr;
}
+
+void object_array_remove_duplicates(struct object_array *array)
+{
+ int ref, src, dst;
+ struct object_array_entry *objects = array->objects;
+
+ for (ref = 0; ref < array->nr - 1; ref++) {
+ for (src = ref + 1, dst = src;
+ src < array->nr;
+ src++) {
+ if (!strcmp(objects[ref].name, objects[src].name))
+ continue;
+ if (src != dst)
+ objects[dst] = objects[src];
+ dst++;
+ }
+ array->nr = dst;
+ }
+}