X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=pack-redundant.c;h=0a43278924edae9d6e3ecdf4bb100bea10faef97;hb=e93ec6f9d8dd122557d54505129f7860b9301503;hp=3b91838c453ec82df38203ba9c004fb7ceeb70f7;hpb=60435f68bb1ff319f9a718c91c0efff7c495dcc4;p=git.git diff --git a/pack-redundant.c b/pack-redundant.c index 3b91838c..0a432789 100644 --- a/pack-redundant.c +++ b/pack-redundant.c @@ -15,7 +15,7 @@ static int load_all_packs = 0, verbose = 0, alt_odb = 0; struct llist_item { struct llist_item *next; - char *sha1; + unsigned char *sha1; }; static struct llist { struct llist_item *front; @@ -100,7 +100,8 @@ static struct llist * llist_copy(struct llist *list) } static inline struct llist_item * llist_insert(struct llist *list, - struct llist_item *after, char *sha1) + struct llist_item *after, + unsigned char *sha1) { struct llist_item *new = llist_item_get(); new->sha1 = sha1; @@ -122,13 +123,12 @@ static inline struct llist_item * llist_insert(struct llist *list, return new; } -static inline struct llist_item * llist_insert_back(struct llist *list, char *sha1) +static inline struct llist_item *llist_insert_back(struct llist *list, unsigned char *sha1) { return llist_insert(list, list->back, sha1); } -static inline struct llist_item * llist_insert_sorted_unique(struct llist *list, - char *sha1, struct llist_item *hint) +static inline struct llist_item *llist_insert_sorted_unique(struct llist *list, unsigned char *sha1, struct llist_item *hint) { struct llist_item *prev = NULL, *l; @@ -149,8 +149,7 @@ static inline struct llist_item * llist_insert_sorted_unique(struct llist *list, } /* returns a pointer to an item in front of sha1 */ -static inline struct llist_item * llist_sorted_remove(struct llist *list, char *sha1, - struct llist_item *hint) +static inline struct llist_item * llist_sorted_remove(struct llist *list, const unsigned char *sha1, struct llist_item *hint) { struct llist_item *prev, *l; @@ -218,10 +217,11 @@ static inline size_t pack_list_size(struct pack_list *pl) return ret; } -static struct pack_list * pack_list_difference(struct pack_list *A, - struct pack_list *B) +static struct pack_list * pack_list_difference(const struct pack_list *A, + const struct pack_list *B) { - struct pack_list *ret, *pl; + struct pack_list *ret; + const struct pack_list *pl; if (A == NULL) return NULL; @@ -350,8 +350,7 @@ static int is_superset(struct pack_list *pl, struct llist *list) diff = llist_copy(list); while (pl) { - llist_sorted_difference_inplace(diff, - pl->all_objects); + llist_sorted_difference_inplace(diff, pl->all_objects); if (diff->size == 0) { /* we're done */ llist_free(diff); return 1; @@ -493,12 +492,10 @@ static void load_all_objects(void) { struct pack_list *pl = local_packs; struct llist_item *hint, *l; - int i; llist_init(&all_objects); while (pl) { - i = 0; hint = NULL; l = pl->all_objects->front; while (l) { @@ -600,7 +597,10 @@ int main(int argc, char **argv) int i; struct pack_list *min, *red, *pl; struct llist *ignore; - char *sha1, buf[42]; /* 40 byte sha1 + \n + \0 */ + unsigned char *sha1; + char buf[42]; /* 40 byte sha1 + \n + \0 */ + + setup_git_directory(); for (i = 1; i < argc; i++) { const char *arg = argv[i]; @@ -687,7 +687,8 @@ int main(int argc, char **argv) pl = pl->next; } if (verbose) - fprintf(stderr, "%luMB of redundant packs in total.\n", pack_set_bytecount(red)/(1024*1024)); + fprintf(stderr, "%luMB of redundant packs in total.\n", + (unsigned long)pack_set_bytecount(red)/(1024*1024)); return 0; }