X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=sha1_file.c;h=82a01887c261676eb39fe72b108bfa56041d71f5;hb=29508e1efb8d5a18f78ca0f9be45fdde49ef6b76;hp=642f00d3d47c3d782c3dfe522d21819c1a67de30;hpb=7ebb6fcafed2a3d47390e6f47ff20a98fe451409;p=git.git diff --git a/sha1_file.c b/sha1_file.c index 642f00d3..82a01887 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -51,6 +51,8 @@ int get_sha1_hex(const char *hex, unsigned char *sha1) int safe_create_leading_directories(char *path) { char *pos = path; + if (*pos == '/') + pos++; while (pos) { pos = strchr(pos, '/'); @@ -422,6 +424,7 @@ struct packed_git *add_packed_git(char *path, int path_len, int local) struct packed_git *p; unsigned long idx_size; void *idx_map; + unsigned char sha1[20]; if (check_packed_git_idx(path, &idx_size, &idx_map)) return NULL; @@ -445,6 +448,8 @@ struct packed_git *add_packed_git(char *path, int path_len, int local) p->pack_last_used = 0; p->pack_use_cnt = 0; p->pack_local = local; + if (!get_sha1_hex(path + path_len - 40 - 4, sha1)) + memcpy(p->sha1, sha1, 20); return p; }