csum-file: rename sha1file to hashfile
Rename struct sha1file to struct hashfile, along with all of its related functions. The transformation in this commit was made by global search-and-replace. Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									aab6135906
								
							
						
					
					
						commit
						98a3beab6a
					
				|  | @ -1241,7 +1241,7 @@ static void resolve_deltas(void) | |||
|  * - append objects to convert thin pack to full pack if required | ||||
|  * - write the final pack hash | ||||
|  */ | ||||
| static void fix_unresolved_deltas(struct sha1file *f); | ||||
| static void fix_unresolved_deltas(struct hashfile *f); | ||||
| static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned char *pack_hash) | ||||
| { | ||||
| 	if (nr_ref_deltas + nr_ofs_deltas == nr_resolved_deltas) { | ||||
|  | @ -1252,7 +1252,7 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha | |||
| 	} | ||||
|  | ||||
| 	if (fix_thin_pack) { | ||||
| 		struct sha1file *f; | ||||
| 		struct hashfile *f; | ||||
| 		unsigned char read_hash[GIT_MAX_RAWSZ], tail_hash[GIT_MAX_RAWSZ]; | ||||
| 		struct strbuf msg = STRBUF_INIT; | ||||
| 		int nr_unresolved = nr_ofs_deltas + nr_ref_deltas - nr_resolved_deltas; | ||||
|  | @ -1262,7 +1262,7 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha | |||
| 		REALLOC_ARRAY(objects, nr_objects + nr_unresolved + 1); | ||||
| 		memset(objects + nr_objects + 1, 0, | ||||
| 		       nr_unresolved * sizeof(*objects)); | ||||
| 		f = sha1fd(output_fd, curr_pack); | ||||
| 		f = hashfd(output_fd, curr_pack); | ||||
| 		fix_unresolved_deltas(f); | ||||
| 		strbuf_addf(&msg, Q_("completed with %d local object", | ||||
| 				     "completed with %d local objects", | ||||
|  | @ -1270,7 +1270,7 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha | |||
| 			    nr_objects - nr_objects_initial); | ||||
| 		stop_progress_msg(&progress, msg.buf); | ||||
| 		strbuf_release(&msg); | ||||
| 		sha1close(f, tail_hash, 0); | ||||
| 		hashclose(f, tail_hash, 0); | ||||
| 		hashcpy(read_hash, pack_hash); | ||||
| 		fixup_pack_header_footer(output_fd, pack_hash, | ||||
| 					 curr_pack, nr_objects, | ||||
|  | @ -1286,7 +1286,7 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha | |||
| 		    nr_ofs_deltas + nr_ref_deltas - nr_resolved_deltas); | ||||
| } | ||||
|  | ||||
| static int write_compressed(struct sha1file *f, void *in, unsigned int size) | ||||
| static int write_compressed(struct hashfile *f, void *in, unsigned int size) | ||||
| { | ||||
| 	git_zstream stream; | ||||
| 	int status; | ||||
|  | @ -1300,7 +1300,7 @@ static int write_compressed(struct sha1file *f, void *in, unsigned int size) | |||
| 		stream.next_out = outbuf; | ||||
| 		stream.avail_out = sizeof(outbuf); | ||||
| 		status = git_deflate(&stream, Z_FINISH); | ||||
| 		sha1write(f, outbuf, sizeof(outbuf) - stream.avail_out); | ||||
| 		hashwrite(f, outbuf, sizeof(outbuf) - stream.avail_out); | ||||
| 	} while (status == Z_OK); | ||||
|  | ||||
| 	if (status != Z_STREAM_END) | ||||
|  | @ -1310,7 +1310,7 @@ static int write_compressed(struct sha1file *f, void *in, unsigned int size) | |||
| 	return size; | ||||
| } | ||||
|  | ||||
| static struct object_entry *append_obj_to_pack(struct sha1file *f, | ||||
| static struct object_entry *append_obj_to_pack(struct hashfile *f, | ||||
| 			       const unsigned char *sha1, void *buf, | ||||
| 			       unsigned long size, enum object_type type) | ||||
| { | ||||
|  | @ -1327,7 +1327,7 @@ static struct object_entry *append_obj_to_pack(struct sha1file *f, | |||
| 	} | ||||
| 	header[n++] = c; | ||||
| 	crc32_begin(f); | ||||
| 	sha1write(f, header, n); | ||||
| 	hashwrite(f, header, n); | ||||
| 	obj[0].size = size; | ||||
| 	obj[0].hdr_size = n; | ||||
| 	obj[0].type = type; | ||||
|  | @ -1335,7 +1335,7 @@ static struct object_entry *append_obj_to_pack(struct sha1file *f, | |||
| 	obj[1].idx.offset = obj[0].idx.offset + n; | ||||
| 	obj[1].idx.offset += write_compressed(f, buf, size); | ||||
| 	obj[0].idx.crc32 = crc32_end(f); | ||||
| 	sha1flush(f); | ||||
| 	hashflush(f); | ||||
| 	hashcpy(obj->idx.oid.hash, sha1); | ||||
| 	return obj; | ||||
| } | ||||
|  | @ -1347,7 +1347,7 @@ static int delta_pos_compare(const void *_a, const void *_b) | |||
| 	return a->obj_no - b->obj_no; | ||||
| } | ||||
|  | ||||
| static void fix_unresolved_deltas(struct sha1file *f) | ||||
| static void fix_unresolved_deltas(struct hashfile *f) | ||||
| { | ||||
| 	struct ref_delta_entry **sorted_by_pos; | ||||
| 	int i; | ||||
|  |  | |||
|  | @ -161,7 +161,7 @@ static unsigned long do_compress(void **pptr, unsigned long size) | |||
| 	return stream.total_out; | ||||
| } | ||||
|  | ||||
| static unsigned long write_large_blob_data(struct git_istream *st, struct sha1file *f, | ||||
| static unsigned long write_large_blob_data(struct git_istream *st, struct hashfile *f, | ||||
| 					   const struct object_id *oid) | ||||
| { | ||||
| 	git_zstream stream; | ||||
|  | @ -185,7 +185,7 @@ static unsigned long write_large_blob_data(struct git_istream *st, struct sha1fi | |||
| 			stream.next_out = obuf; | ||||
| 			stream.avail_out = sizeof(obuf); | ||||
| 			zret = git_deflate(&stream, readlen ? 0 : Z_FINISH); | ||||
| 			sha1write(f, obuf, stream.next_out - obuf); | ||||
| 			hashwrite(f, obuf, stream.next_out - obuf); | ||||
| 			olen += stream.next_out - obuf; | ||||
| 		} | ||||
| 		if (stream.avail_in) | ||||
|  | @ -230,7 +230,7 @@ static int check_pack_inflate(struct packed_git *p, | |||
| 		stream.total_in == len) ? 0 : -1; | ||||
| } | ||||
|  | ||||
| static void copy_pack_data(struct sha1file *f, | ||||
| static void copy_pack_data(struct hashfile *f, | ||||
| 		struct packed_git *p, | ||||
| 		struct pack_window **w_curs, | ||||
| 		off_t offset, | ||||
|  | @ -243,14 +243,14 @@ static void copy_pack_data(struct sha1file *f, | |||
| 		in = use_pack(p, w_curs, offset, &avail); | ||||
| 		if (avail > len) | ||||
| 			avail = (unsigned long)len; | ||||
| 		sha1write(f, in, avail); | ||||
| 		hashwrite(f, in, avail); | ||||
| 		offset += avail; | ||||
| 		len -= avail; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /* Return 0 if we will bust the pack-size limit */ | ||||
| static unsigned long write_no_reuse_object(struct sha1file *f, struct object_entry *entry, | ||||
| static unsigned long write_no_reuse_object(struct hashfile *f, struct object_entry *entry, | ||||
| 					   unsigned long limit, int usable_delta) | ||||
| { | ||||
| 	unsigned long size, datalen; | ||||
|  | @ -323,8 +323,8 @@ static unsigned long write_no_reuse_object(struct sha1file *f, struct object_ent | |||
| 			free(buf); | ||||
| 			return 0; | ||||
| 		} | ||||
| 		sha1write(f, header, hdrlen); | ||||
| 		sha1write(f, dheader + pos, sizeof(dheader) - pos); | ||||
| 		hashwrite(f, header, hdrlen); | ||||
| 		hashwrite(f, dheader + pos, sizeof(dheader) - pos); | ||||
| 		hdrlen += sizeof(dheader) - pos; | ||||
| 	} else if (type == OBJ_REF_DELTA) { | ||||
| 		/* | ||||
|  | @ -337,8 +337,8 @@ static unsigned long write_no_reuse_object(struct sha1file *f, struct object_ent | |||
| 			free(buf); | ||||
| 			return 0; | ||||
| 		} | ||||
| 		sha1write(f, header, hdrlen); | ||||
| 		sha1write(f, entry->delta->idx.oid.hash, 20); | ||||
| 		hashwrite(f, header, hdrlen); | ||||
| 		hashwrite(f, entry->delta->idx.oid.hash, 20); | ||||
| 		hdrlen += 20; | ||||
| 	} else { | ||||
| 		if (limit && hdrlen + datalen + 20 >= limit) { | ||||
|  | @ -347,13 +347,13 @@ static unsigned long write_no_reuse_object(struct sha1file *f, struct object_ent | |||
| 			free(buf); | ||||
| 			return 0; | ||||
| 		} | ||||
| 		sha1write(f, header, hdrlen); | ||||
| 		hashwrite(f, header, hdrlen); | ||||
| 	} | ||||
| 	if (st) { | ||||
| 		datalen = write_large_blob_data(st, f, &entry->idx.oid); | ||||
| 		close_istream(st); | ||||
| 	} else { | ||||
| 		sha1write(f, buf, datalen); | ||||
| 		hashwrite(f, buf, datalen); | ||||
| 		free(buf); | ||||
| 	} | ||||
|  | ||||
|  | @ -361,7 +361,7 @@ static unsigned long write_no_reuse_object(struct sha1file *f, struct object_ent | |||
| } | ||||
|  | ||||
| /* Return 0 if we will bust the pack-size limit */ | ||||
| static off_t write_reuse_object(struct sha1file *f, struct object_entry *entry, | ||||
| static off_t write_reuse_object(struct hashfile *f, struct object_entry *entry, | ||||
| 				unsigned long limit, int usable_delta) | ||||
| { | ||||
| 	struct packed_git *p = entry->in_pack; | ||||
|  | @ -412,8 +412,8 @@ static off_t write_reuse_object(struct sha1file *f, struct object_entry *entry, | |||
| 			unuse_pack(&w_curs); | ||||
| 			return 0; | ||||
| 		} | ||||
| 		sha1write(f, header, hdrlen); | ||||
| 		sha1write(f, dheader + pos, sizeof(dheader) - pos); | ||||
| 		hashwrite(f, header, hdrlen); | ||||
| 		hashwrite(f, dheader + pos, sizeof(dheader) - pos); | ||||
| 		hdrlen += sizeof(dheader) - pos; | ||||
| 		reused_delta++; | ||||
| 	} else if (type == OBJ_REF_DELTA) { | ||||
|  | @ -421,8 +421,8 @@ static off_t write_reuse_object(struct sha1file *f, struct object_entry *entry, | |||
| 			unuse_pack(&w_curs); | ||||
| 			return 0; | ||||
| 		} | ||||
| 		sha1write(f, header, hdrlen); | ||||
| 		sha1write(f, entry->delta->idx.oid.hash, 20); | ||||
| 		hashwrite(f, header, hdrlen); | ||||
| 		hashwrite(f, entry->delta->idx.oid.hash, 20); | ||||
| 		hdrlen += 20; | ||||
| 		reused_delta++; | ||||
| 	} else { | ||||
|  | @ -430,7 +430,7 @@ static off_t write_reuse_object(struct sha1file *f, struct object_entry *entry, | |||
| 			unuse_pack(&w_curs); | ||||
| 			return 0; | ||||
| 		} | ||||
| 		sha1write(f, header, hdrlen); | ||||
| 		hashwrite(f, header, hdrlen); | ||||
| 	} | ||||
| 	copy_pack_data(f, p, &w_curs, offset, datalen); | ||||
| 	unuse_pack(&w_curs); | ||||
|  | @ -439,7 +439,7 @@ static off_t write_reuse_object(struct sha1file *f, struct object_entry *entry, | |||
| } | ||||
|  | ||||
| /* Return 0 if we will bust the pack-size limit */ | ||||
| static off_t write_object(struct sha1file *f, | ||||
| static off_t write_object(struct hashfile *f, | ||||
| 			  struct object_entry *entry, | ||||
| 			  off_t write_offset) | ||||
| { | ||||
|  | @ -512,7 +512,7 @@ enum write_one_status { | |||
| 	WRITE_ONE_RECURSIVE = 2 /* already scheduled to be written */ | ||||
| }; | ||||
|  | ||||
| static enum write_one_status write_one(struct sha1file *f, | ||||
| static enum write_one_status write_one(struct hashfile *f, | ||||
| 				       struct object_entry *e, | ||||
| 				       off_t *offset) | ||||
| { | ||||
|  | @ -731,7 +731,7 @@ static struct object_entry **compute_write_order(void) | |||
| 	return wo; | ||||
| } | ||||
|  | ||||
| static off_t write_reused_pack(struct sha1file *f) | ||||
| static off_t write_reused_pack(struct hashfile *f) | ||||
| { | ||||
| 	unsigned char buffer[8192]; | ||||
| 	off_t to_write, total; | ||||
|  | @ -762,7 +762,7 @@ static off_t write_reused_pack(struct sha1file *f) | |||
| 		if (read_pack > to_write) | ||||
| 			read_pack = to_write; | ||||
|  | ||||
| 		sha1write(f, buffer, read_pack); | ||||
| 		hashwrite(f, buffer, read_pack); | ||||
| 		to_write -= read_pack; | ||||
|  | ||||
| 		/* | ||||
|  | @ -791,7 +791,7 @@ static const char no_split_warning[] = N_( | |||
| static void write_pack_file(void) | ||||
| { | ||||
| 	uint32_t i = 0, j; | ||||
| 	struct sha1file *f; | ||||
| 	struct hashfile *f; | ||||
| 	off_t offset; | ||||
| 	uint32_t nr_remaining = nr_result; | ||||
| 	time_t last_mtime = 0; | ||||
|  | @ -807,7 +807,7 @@ static void write_pack_file(void) | |||
| 		char *pack_tmp_name = NULL; | ||||
|  | ||||
| 		if (pack_to_stdout) | ||||
| 			f = sha1fd_throughput(1, "<stdout>", progress_state); | ||||
| 			f = hashfd_throughput(1, "<stdout>", progress_state); | ||||
| 		else | ||||
| 			f = create_tmp_packfile(&pack_tmp_name); | ||||
|  | ||||
|  | @ -834,11 +834,11 @@ static void write_pack_file(void) | |||
| 		 * If so, rewrite it like in fast-import | ||||
| 		 */ | ||||
| 		if (pack_to_stdout) { | ||||
| 			sha1close(f, oid.hash, CSUM_CLOSE); | ||||
| 			hashclose(f, oid.hash, CSUM_CLOSE); | ||||
| 		} else if (nr_written == nr_remaining) { | ||||
| 			sha1close(f, oid.hash, CSUM_FSYNC); | ||||
| 			hashclose(f, oid.hash, CSUM_FSYNC); | ||||
| 		} else { | ||||
| 			int fd = sha1close(f, oid.hash, 0); | ||||
| 			int fd = hashclose(f, oid.hash, 0); | ||||
| 			fixup_pack_header_footer(fd, oid.hash, pack_tmp_name, | ||||
| 						 nr_written, oid.hash, offset); | ||||
| 			close(fd); | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ static struct bulk_checkin_state { | |||
| 	unsigned plugged:1; | ||||
|  | ||||
| 	char *pack_tmp_name; | ||||
| 	struct sha1file *f; | ||||
| 	struct hashfile *f; | ||||
| 	off_t offset; | ||||
| 	struct pack_idx_option pack_idx_opts; | ||||
|  | ||||
|  | @ -35,9 +35,9 @@ static void finish_bulk_checkin(struct bulk_checkin_state *state) | |||
| 		unlink(state->pack_tmp_name); | ||||
| 		goto clear_exit; | ||||
| 	} else if (state->nr_written == 1) { | ||||
| 		sha1close(state->f, oid.hash, CSUM_FSYNC); | ||||
| 		hashclose(state->f, oid.hash, CSUM_FSYNC); | ||||
| 	} else { | ||||
| 		int fd = sha1close(state->f, oid.hash, 0); | ||||
| 		int fd = hashclose(state->f, oid.hash, 0); | ||||
| 		fixup_pack_header_footer(fd, oid.hash, state->pack_tmp_name, | ||||
| 					 state->nr_written, oid.hash, | ||||
| 					 state->offset); | ||||
|  | @ -149,7 +149,7 @@ static int stream_to_pack(struct bulk_checkin_state *state, | |||
| 					return -1; | ||||
| 				} | ||||
|  | ||||
| 				sha1write(state->f, obuf, written); | ||||
| 				hashwrite(state->f, obuf, written); | ||||
| 				state->offset += written; | ||||
| 			} | ||||
| 			s.next_out = obuf; | ||||
|  | @ -195,7 +195,7 @@ static int deflate_to_pack(struct bulk_checkin_state *state, | |||
| 	git_SHA_CTX ctx; | ||||
| 	unsigned char obuf[16384]; | ||||
| 	unsigned header_len; | ||||
| 	struct sha1file_checkpoint checkpoint; | ||||
| 	struct hashfile_checkpoint checkpoint; | ||||
| 	struct pack_idx_entry *idx = NULL; | ||||
|  | ||||
| 	seekback = lseek(fd, 0, SEEK_CUR); | ||||
|  | @ -216,7 +216,7 @@ static int deflate_to_pack(struct bulk_checkin_state *state, | |||
| 	while (1) { | ||||
| 		prepare_to_stream(state, flags); | ||||
| 		if (idx) { | ||||
| 			sha1file_checkpoint(state->f, &checkpoint); | ||||
| 			hashfile_checkpoint(state->f, &checkpoint); | ||||
| 			idx->offset = state->offset; | ||||
| 			crc32_begin(state->f); | ||||
| 		} | ||||
|  | @ -230,7 +230,7 @@ static int deflate_to_pack(struct bulk_checkin_state *state, | |||
| 		 */ | ||||
| 		if (!idx) | ||||
| 			die("BUG: should not happen"); | ||||
| 		sha1file_truncate(state->f, &checkpoint); | ||||
| 		hashfile_truncate(state->f, &checkpoint); | ||||
| 		state->offset = checkpoint.offset; | ||||
| 		finish_bulk_checkin(state); | ||||
| 		if (lseek(fd, seekback, SEEK_SET) == (off_t) -1) | ||||
|  | @ -242,7 +242,7 @@ static int deflate_to_pack(struct bulk_checkin_state *state, | |||
|  | ||||
| 	idx->crc32 = crc32_end(state->f); | ||||
| 	if (already_written(state, result_sha1)) { | ||||
| 		sha1file_truncate(state->f, &checkpoint); | ||||
| 		hashfile_truncate(state->f, &checkpoint); | ||||
| 		state->offset = checkpoint.offset; | ||||
| 		free(idx); | ||||
| 	} else { | ||||
|  |  | |||
							
								
								
									
										36
									
								
								csum-file.c
								
								
								
								
							
							
						
						
									
										36
									
								
								csum-file.c
								
								
								
								
							|  | @ -11,7 +11,7 @@ | |||
| #include "progress.h" | ||||
| #include "csum-file.h" | ||||
|  | ||||
| static void flush(struct sha1file *f, const void *buf, unsigned int count) | ||||
| static void flush(struct hashfile *f, const void *buf, unsigned int count) | ||||
| { | ||||
| 	if (0 <= f->check_fd && count)  { | ||||
| 		unsigned char check_buffer[8192]; | ||||
|  | @ -42,7 +42,7 @@ static void flush(struct sha1file *f, const void *buf, unsigned int count) | |||
| 	} | ||||
| } | ||||
|  | ||||
| void sha1flush(struct sha1file *f) | ||||
| void hashflush(struct hashfile *f) | ||||
| { | ||||
| 	unsigned offset = f->offset; | ||||
|  | ||||
|  | @ -53,11 +53,11 @@ void sha1flush(struct sha1file *f) | |||
| 	} | ||||
| } | ||||
|  | ||||
| int sha1close(struct sha1file *f, unsigned char *result, unsigned int flags) | ||||
| int hashclose(struct hashfile *f, unsigned char *result, unsigned int flags) | ||||
| { | ||||
| 	int fd; | ||||
|  | ||||
| 	sha1flush(f); | ||||
| 	hashflush(f); | ||||
| 	git_SHA1_Final(f->buffer, &f->ctx); | ||||
| 	if (result) | ||||
| 		hashcpy(result, f->buffer); | ||||
|  | @ -86,7 +86,7 @@ int sha1close(struct sha1file *f, unsigned char *result, unsigned int flags) | |||
| 	return fd; | ||||
| } | ||||
|  | ||||
| void sha1write(struct sha1file *f, const void *buf, unsigned int count) | ||||
| void hashwrite(struct hashfile *f, const void *buf, unsigned int count) | ||||
| { | ||||
| 	while (count) { | ||||
| 		unsigned offset = f->offset; | ||||
|  | @ -118,15 +118,15 @@ void sha1write(struct sha1file *f, const void *buf, unsigned int count) | |||
| 	} | ||||
| } | ||||
|  | ||||
| struct sha1file *sha1fd(int fd, const char *name) | ||||
| struct hashfile *hashfd(int fd, const char *name) | ||||
| { | ||||
| 	return sha1fd_throughput(fd, name, NULL); | ||||
| 	return hashfd_throughput(fd, name, NULL); | ||||
| } | ||||
|  | ||||
| struct sha1file *sha1fd_check(const char *name) | ||||
| struct hashfile *hashfd_check(const char *name) | ||||
| { | ||||
| 	int sink, check; | ||||
| 	struct sha1file *f; | ||||
| 	struct hashfile *f; | ||||
|  | ||||
| 	sink = open("/dev/null", O_WRONLY); | ||||
| 	if (sink < 0) | ||||
|  | @ -134,14 +134,14 @@ struct sha1file *sha1fd_check(const char *name) | |||
| 	check = open(name, O_RDONLY); | ||||
| 	if (check < 0) | ||||
| 		die_errno("unable to open '%s'", name); | ||||
| 	f = sha1fd(sink, name); | ||||
| 	f = hashfd(sink, name); | ||||
| 	f->check_fd = check; | ||||
| 	return f; | ||||
| } | ||||
|  | ||||
| struct sha1file *sha1fd_throughput(int fd, const char *name, struct progress *tp) | ||||
| struct hashfile *hashfd_throughput(int fd, const char *name, struct progress *tp) | ||||
| { | ||||
| 	struct sha1file *f = xmalloc(sizeof(*f)); | ||||
| 	struct hashfile *f = xmalloc(sizeof(*f)); | ||||
| 	f->fd = fd; | ||||
| 	f->check_fd = -1; | ||||
| 	f->offset = 0; | ||||
|  | @ -153,14 +153,14 @@ struct sha1file *sha1fd_throughput(int fd, const char *name, struct progress *tp | |||
| 	return f; | ||||
| } | ||||
|  | ||||
| void sha1file_checkpoint(struct sha1file *f, struct sha1file_checkpoint *checkpoint) | ||||
| void hashfile_checkpoint(struct hashfile *f, struct hashfile_checkpoint *checkpoint) | ||||
| { | ||||
| 	sha1flush(f); | ||||
| 	hashflush(f); | ||||
| 	checkpoint->offset = f->total; | ||||
| 	checkpoint->ctx = f->ctx; | ||||
| } | ||||
|  | ||||
| int sha1file_truncate(struct sha1file *f, struct sha1file_checkpoint *checkpoint) | ||||
| int hashfile_truncate(struct hashfile *f, struct hashfile_checkpoint *checkpoint) | ||||
| { | ||||
| 	off_t offset = checkpoint->offset; | ||||
|  | ||||
|  | @ -169,17 +169,17 @@ int sha1file_truncate(struct sha1file *f, struct sha1file_checkpoint *checkpoint | |||
| 		return -1; | ||||
| 	f->total = offset; | ||||
| 	f->ctx = checkpoint->ctx; | ||||
| 	f->offset = 0; /* sha1flush() was called in checkpoint */ | ||||
| 	f->offset = 0; /* hashflush() was called in checkpoint */ | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| void crc32_begin(struct sha1file *f) | ||||
| void crc32_begin(struct hashfile *f) | ||||
| { | ||||
| 	f->crc32 = crc32(0, NULL, 0); | ||||
| 	f->do_crc = 1; | ||||
| } | ||||
|  | ||||
| uint32_t crc32_end(struct sha1file *f) | ||||
| uint32_t crc32_end(struct hashfile *f) | ||||
| { | ||||
| 	f->do_crc = 0; | ||||
| 	return f->crc32; | ||||
|  |  | |||
							
								
								
									
										34
									
								
								csum-file.h
								
								
								
								
							
							
						
						
									
										34
									
								
								csum-file.h
								
								
								
								
							|  | @ -4,7 +4,7 @@ | |||
| struct progress; | ||||
|  | ||||
| /* A SHA1-protected file */ | ||||
| struct sha1file { | ||||
| struct hashfile { | ||||
| 	int fd; | ||||
| 	int check_fd; | ||||
| 	unsigned int offset; | ||||
|  | @ -18,36 +18,36 @@ struct sha1file { | |||
| }; | ||||
|  | ||||
| /* Checkpoint */ | ||||
| struct sha1file_checkpoint { | ||||
| struct hashfile_checkpoint { | ||||
| 	off_t offset; | ||||
| 	git_SHA_CTX ctx; | ||||
| }; | ||||
|  | ||||
| extern void sha1file_checkpoint(struct sha1file *, struct sha1file_checkpoint *); | ||||
| extern int sha1file_truncate(struct sha1file *, struct sha1file_checkpoint *); | ||||
| extern void hashfile_checkpoint(struct hashfile *, struct hashfile_checkpoint *); | ||||
| extern int hashfile_truncate(struct hashfile *, struct hashfile_checkpoint *); | ||||
|  | ||||
| /* sha1close flags */ | ||||
| /* hashclose flags */ | ||||
| #define CSUM_CLOSE	1 | ||||
| #define CSUM_FSYNC	2 | ||||
|  | ||||
| extern struct sha1file *sha1fd(int fd, const char *name); | ||||
| extern struct sha1file *sha1fd_check(const char *name); | ||||
| extern struct sha1file *sha1fd_throughput(int fd, const char *name, struct progress *tp); | ||||
| extern int sha1close(struct sha1file *, unsigned char *, unsigned int); | ||||
| extern void sha1write(struct sha1file *, const void *, unsigned int); | ||||
| extern void sha1flush(struct sha1file *f); | ||||
| extern void crc32_begin(struct sha1file *); | ||||
| extern uint32_t crc32_end(struct sha1file *); | ||||
| extern struct hashfile *hashfd(int fd, const char *name); | ||||
| extern struct hashfile *hashfd_check(const char *name); | ||||
| extern struct hashfile *hashfd_throughput(int fd, const char *name, struct progress *tp); | ||||
| extern int hashclose(struct hashfile *, unsigned char *, unsigned int); | ||||
| extern void hashwrite(struct hashfile *, const void *, unsigned int); | ||||
| extern void hashflush(struct hashfile *f); | ||||
| extern void crc32_begin(struct hashfile *); | ||||
| extern uint32_t crc32_end(struct hashfile *); | ||||
|  | ||||
| static inline void sha1write_u8(struct sha1file *f, uint8_t data) | ||||
| static inline void hashwrite_u8(struct hashfile *f, uint8_t data) | ||||
| { | ||||
| 	sha1write(f, &data, sizeof(data)); | ||||
| 	hashwrite(f, &data, sizeof(data)); | ||||
| } | ||||
|  | ||||
| static inline void sha1write_be32(struct sha1file *f, uint32_t data) | ||||
| static inline void hashwrite_be32(struct hashfile *f, uint32_t data) | ||||
| { | ||||
| 	data = htonl(data); | ||||
| 	sha1write(f, &data, sizeof(data)); | ||||
| 	hashwrite(f, &data, sizeof(data)); | ||||
| } | ||||
|  | ||||
| #endif | ||||
|  |  | |||
|  | @ -316,7 +316,7 @@ static struct atom_str **atom_table; | |||
| /* The .pack file being generated */ | ||||
| static struct pack_idx_option pack_idx_opts; | ||||
| static unsigned int pack_id; | ||||
| static struct sha1file *pack_file; | ||||
| static struct hashfile *pack_file; | ||||
| static struct packed_git *pack_data; | ||||
| static struct packed_git **all_packs; | ||||
| static off_t pack_size; | ||||
|  | @ -905,12 +905,12 @@ static void start_packfile(void) | |||
|  | ||||
| 	p->pack_fd = pack_fd; | ||||
| 	p->do_not_close = 1; | ||||
| 	pack_file = sha1fd(pack_fd, p->pack_name); | ||||
| 	pack_file = hashfd(pack_fd, p->pack_name); | ||||
|  | ||||
| 	hdr.hdr_signature = htonl(PACK_SIGNATURE); | ||||
| 	hdr.hdr_version = htonl(2); | ||||
| 	hdr.hdr_entries = 0; | ||||
| 	sha1write(pack_file, &hdr, sizeof(hdr)); | ||||
| 	hashwrite(pack_file, &hdr, sizeof(hdr)); | ||||
|  | ||||
| 	pack_data = p; | ||||
| 	pack_size = sizeof(hdr); | ||||
|  | @ -1016,7 +1016,7 @@ static void end_packfile(void) | |||
| 		struct tag *t; | ||||
|  | ||||
| 		close_pack_windows(pack_data); | ||||
| 		sha1close(pack_file, cur_pack_oid.hash, 0); | ||||
| 		hashclose(pack_file, cur_pack_oid.hash, 0); | ||||
| 		fixup_pack_header_footer(pack_data->pack_fd, pack_data->sha1, | ||||
| 				    pack_data->pack_name, object_count, | ||||
| 				    cur_pack_oid.hash, pack_size); | ||||
|  | @ -1182,23 +1182,23 @@ static int store_object( | |||
|  | ||||
| 		hdrlen = encode_in_pack_object_header(hdr, sizeof(hdr), | ||||
| 						      OBJ_OFS_DELTA, deltalen); | ||||
| 		sha1write(pack_file, hdr, hdrlen); | ||||
| 		hashwrite(pack_file, hdr, hdrlen); | ||||
| 		pack_size += hdrlen; | ||||
|  | ||||
| 		hdr[pos] = ofs & 127; | ||||
| 		while (ofs >>= 7) | ||||
| 			hdr[--pos] = 128 | (--ofs & 127); | ||||
| 		sha1write(pack_file, hdr + pos, sizeof(hdr) - pos); | ||||
| 		hashwrite(pack_file, hdr + pos, sizeof(hdr) - pos); | ||||
| 		pack_size += sizeof(hdr) - pos; | ||||
| 	} else { | ||||
| 		e->depth = 0; | ||||
| 		hdrlen = encode_in_pack_object_header(hdr, sizeof(hdr), | ||||
| 						      type, dat->len); | ||||
| 		sha1write(pack_file, hdr, hdrlen); | ||||
| 		hashwrite(pack_file, hdr, hdrlen); | ||||
| 		pack_size += hdrlen; | ||||
| 	} | ||||
|  | ||||
| 	sha1write(pack_file, out, s.total_out); | ||||
| 	hashwrite(pack_file, out, s.total_out); | ||||
| 	pack_size += s.total_out; | ||||
|  | ||||
| 	e->idx.crc32 = crc32_end(pack_file); | ||||
|  | @ -1217,9 +1217,9 @@ static int store_object( | |||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static void truncate_pack(struct sha1file_checkpoint *checkpoint) | ||||
| static void truncate_pack(struct hashfile_checkpoint *checkpoint) | ||||
| { | ||||
| 	if (sha1file_truncate(pack_file, checkpoint)) | ||||
| 	if (hashfile_truncate(pack_file, checkpoint)) | ||||
| 		die_errno("cannot truncate pack to skip duplicate"); | ||||
| 	pack_size = checkpoint->offset; | ||||
| } | ||||
|  | @ -1235,7 +1235,7 @@ static void stream_blob(uintmax_t len, struct object_id *oidout, uintmax_t mark) | |||
| 	off_t offset; | ||||
| 	git_hash_ctx c; | ||||
| 	git_zstream s; | ||||
| 	struct sha1file_checkpoint checkpoint; | ||||
| 	struct hashfile_checkpoint checkpoint; | ||||
| 	int status = Z_OK; | ||||
|  | ||||
| 	/* Determine if we should auto-checkpoint. */ | ||||
|  | @ -1243,7 +1243,7 @@ static void stream_blob(uintmax_t len, struct object_id *oidout, uintmax_t mark) | |||
| 		|| (pack_size + 60 + len) < pack_size) | ||||
| 		cycle_packfile(); | ||||
|  | ||||
| 	sha1file_checkpoint(pack_file, &checkpoint); | ||||
| 	hashfile_checkpoint(pack_file, &checkpoint); | ||||
| 	offset = checkpoint.offset; | ||||
|  | ||||
| 	hdrlen = xsnprintf((char *)out_buf, out_sz, "blob %" PRIuMAX, len) + 1; | ||||
|  | @ -1277,7 +1277,7 @@ static void stream_blob(uintmax_t len, struct object_id *oidout, uintmax_t mark) | |||
|  | ||||
| 		if (!s.avail_out || status == Z_STREAM_END) { | ||||
| 			size_t n = s.next_out - out_buf; | ||||
| 			sha1write(pack_file, out_buf, n); | ||||
| 			hashwrite(pack_file, out_buf, n); | ||||
| 			pack_size += n; | ||||
| 			s.next_out = out_buf; | ||||
| 			s.avail_out = out_sz; | ||||
|  | @ -1362,7 +1362,7 @@ static void *gfi_unpack_entry( | |||
| 		 * the newly written data. | ||||
| 		 */ | ||||
| 		close_pack_windows(p); | ||||
| 		sha1flush(pack_file); | ||||
| 		hashflush(pack_file); | ||||
|  | ||||
| 		/* We have to offer rawsz bytes additional on the end of | ||||
| 		 * the packfile as the core unpacker code assumes the | ||||
|  |  | |||
|  | @ -440,19 +440,19 @@ void bitmap_writer_select_commits(struct commit **indexed_commits, | |||
| } | ||||
|  | ||||
|  | ||||
| static int sha1write_ewah_helper(void *f, const void *buf, size_t len) | ||||
| static int hashwrite_ewah_helper(void *f, const void *buf, size_t len) | ||||
| { | ||||
| 	/* sha1write will die on error */ | ||||
| 	sha1write(f, buf, len); | ||||
| 	/* hashwrite will die on error */ | ||||
| 	hashwrite(f, buf, len); | ||||
| 	return len; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Write the bitmap index to disk | ||||
|  */ | ||||
| static inline void dump_bitmap(struct sha1file *f, struct ewah_bitmap *bitmap) | ||||
| static inline void dump_bitmap(struct hashfile *f, struct ewah_bitmap *bitmap) | ||||
| { | ||||
| 	if (ewah_serialize_to(bitmap, sha1write_ewah_helper, f) < 0) | ||||
| 	if (ewah_serialize_to(bitmap, hashwrite_ewah_helper, f) < 0) | ||||
| 		die("Failed to write bitmap index"); | ||||
| } | ||||
|  | ||||
|  | @ -462,7 +462,7 @@ static const unsigned char *sha1_access(size_t pos, void *table) | |||
| 	return index[pos]->oid.hash; | ||||
| } | ||||
|  | ||||
| static void write_selected_commits_v1(struct sha1file *f, | ||||
| static void write_selected_commits_v1(struct hashfile *f, | ||||
| 				      struct pack_idx_entry **index, | ||||
| 				      uint32_t index_nr) | ||||
| { | ||||
|  | @ -477,15 +477,15 @@ static void write_selected_commits_v1(struct sha1file *f, | |||
| 		if (commit_pos < 0) | ||||
| 			die("BUG: trying to write commit not in index"); | ||||
|  | ||||
| 		sha1write_be32(f, commit_pos); | ||||
| 		sha1write_u8(f, stored->xor_offset); | ||||
| 		sha1write_u8(f, stored->flags); | ||||
| 		hashwrite_be32(f, commit_pos); | ||||
| 		hashwrite_u8(f, stored->xor_offset); | ||||
| 		hashwrite_u8(f, stored->flags); | ||||
|  | ||||
| 		dump_bitmap(f, stored->write_as); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| static void write_hash_cache(struct sha1file *f, | ||||
| static void write_hash_cache(struct hashfile *f, | ||||
| 			     struct pack_idx_entry **index, | ||||
| 			     uint32_t index_nr) | ||||
| { | ||||
|  | @ -494,7 +494,7 @@ static void write_hash_cache(struct sha1file *f, | |||
| 	for (i = 0; i < index_nr; ++i) { | ||||
| 		struct object_entry *entry = (struct object_entry *)index[i]; | ||||
| 		uint32_t hash_value = htonl(entry->hash); | ||||
| 		sha1write(f, &hash_value, sizeof(hash_value)); | ||||
| 		hashwrite(f, &hash_value, sizeof(hash_value)); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | @ -511,13 +511,13 @@ void bitmap_writer_finish(struct pack_idx_entry **index, | |||
| 	static uint16_t default_version = 1; | ||||
| 	static uint16_t flags = BITMAP_OPT_FULL_DAG; | ||||
| 	struct strbuf tmp_file = STRBUF_INIT; | ||||
| 	struct sha1file *f; | ||||
| 	struct hashfile *f; | ||||
|  | ||||
| 	struct bitmap_disk_header header; | ||||
|  | ||||
| 	int fd = odb_mkstemp(&tmp_file, "pack/tmp_bitmap_XXXXXX"); | ||||
|  | ||||
| 	f = sha1fd(fd, tmp_file.buf); | ||||
| 	f = hashfd(fd, tmp_file.buf); | ||||
|  | ||||
| 	memcpy(header.magic, BITMAP_IDX_SIGNATURE, sizeof(BITMAP_IDX_SIGNATURE)); | ||||
| 	header.version = htons(default_version); | ||||
|  | @ -525,7 +525,7 @@ void bitmap_writer_finish(struct pack_idx_entry **index, | |||
| 	header.entry_count = htonl(writer.selected_nr); | ||||
| 	hashcpy(header.checksum, writer.pack_checksum); | ||||
|  | ||||
| 	sha1write(f, &header, sizeof(header)); | ||||
| 	hashwrite(f, &header, sizeof(header)); | ||||
| 	dump_bitmap(f, writer.commits); | ||||
| 	dump_bitmap(f, writer.trees); | ||||
| 	dump_bitmap(f, writer.blobs); | ||||
|  | @ -535,7 +535,7 @@ void bitmap_writer_finish(struct pack_idx_entry **index, | |||
| 	if (options & BITMAP_OPT_HASH_CACHE) | ||||
| 		write_hash_cache(f, index, index_nr); | ||||
|  | ||||
| 	sha1close(f, NULL, CSUM_FSYNC); | ||||
| 	hashclose(f, NULL, CSUM_FSYNC); | ||||
|  | ||||
| 	if (adjust_shared_perm(tmp_file.buf)) | ||||
| 		die_errno("unable to make temporary bitmap file readable"); | ||||
|  |  | |||
							
								
								
									
										32
									
								
								pack-write.c
								
								
								
								
							
							
						
						
									
										32
									
								
								pack-write.c
								
								
								
								
							|  | @ -46,7 +46,7 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec | |||
| 			   int nr_objects, const struct pack_idx_option *opts, | ||||
| 			   const unsigned char *sha1) | ||||
| { | ||||
| 	struct sha1file *f; | ||||
| 	struct hashfile *f; | ||||
| 	struct pack_idx_entry **sorted_by_sha, **list, **last; | ||||
| 	off_t last_obj_offset = 0; | ||||
| 	uint32_t array[256]; | ||||
|  | @ -68,7 +68,7 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec | |||
|  | ||||
| 	if (opts->flags & WRITE_IDX_VERIFY) { | ||||
| 		assert(index_name); | ||||
| 		f = sha1fd_check(index_name); | ||||
| 		f = hashfd_check(index_name); | ||||
| 	} else { | ||||
| 		if (!index_name) { | ||||
| 			struct strbuf tmp_file = STRBUF_INIT; | ||||
|  | @ -80,7 +80,7 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec | |||
| 			if (fd < 0) | ||||
| 				die_errno("unable to create '%s'", index_name); | ||||
| 		} | ||||
| 		f = sha1fd(fd, index_name); | ||||
| 		f = hashfd(fd, index_name); | ||||
| 	} | ||||
|  | ||||
| 	/* if last object's offset is >= 2^31 we should use index V2 */ | ||||
|  | @ -91,7 +91,7 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec | |||
| 		struct pack_idx_header hdr; | ||||
| 		hdr.idx_signature = htonl(PACK_IDX_SIGNATURE); | ||||
| 		hdr.idx_version = htonl(index_version); | ||||
| 		sha1write(f, &hdr, sizeof(hdr)); | ||||
| 		hashwrite(f, &hdr, sizeof(hdr)); | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
|  | @ -110,7 +110,7 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec | |||
| 		array[i] = htonl(next - sorted_by_sha); | ||||
| 		list = next; | ||||
| 	} | ||||
| 	sha1write(f, array, 256 * 4); | ||||
| 	hashwrite(f, array, 256 * 4); | ||||
|  | ||||
| 	/* | ||||
| 	 * Write the actual SHA1 entries.. | ||||
|  | @ -120,9 +120,9 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec | |||
| 		struct pack_idx_entry *obj = *list++; | ||||
| 		if (index_version < 2) { | ||||
| 			uint32_t offset = htonl(obj->offset); | ||||
| 			sha1write(f, &offset, 4); | ||||
| 			hashwrite(f, &offset, 4); | ||||
| 		} | ||||
| 		sha1write(f, obj->oid.hash, the_hash_algo->rawsz); | ||||
| 		hashwrite(f, obj->oid.hash, the_hash_algo->rawsz); | ||||
| 		if ((opts->flags & WRITE_IDX_STRICT) && | ||||
| 		    (i && !oidcmp(&list[-2]->oid, &obj->oid))) | ||||
| 			die("The same object %s appears twice in the pack", | ||||
|  | @ -137,7 +137,7 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec | |||
| 		for (i = 0; i < nr_objects; i++) { | ||||
| 			struct pack_idx_entry *obj = *list++; | ||||
| 			uint32_t crc32_val = htonl(obj->crc32); | ||||
| 			sha1write(f, &crc32_val, 4); | ||||
| 			hashwrite(f, &crc32_val, 4); | ||||
| 		} | ||||
|  | ||||
| 		/* write the 32-bit offset table */ | ||||
|  | @ -150,7 +150,7 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec | |||
| 				  ? (0x80000000 | nr_large_offset++) | ||||
| 				  : obj->offset); | ||||
| 			offset = htonl(offset); | ||||
| 			sha1write(f, &offset, 4); | ||||
| 			hashwrite(f, &offset, 4); | ||||
| 		} | ||||
|  | ||||
| 		/* write the large offset table */ | ||||
|  | @ -164,25 +164,25 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec | |||
| 				continue; | ||||
| 			split[0] = htonl(offset >> 32); | ||||
| 			split[1] = htonl(offset & 0xffffffff); | ||||
| 			sha1write(f, split, 8); | ||||
| 			hashwrite(f, split, 8); | ||||
| 			nr_large_offset--; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	sha1write(f, sha1, the_hash_algo->rawsz); | ||||
| 	sha1close(f, NULL, ((opts->flags & WRITE_IDX_VERIFY) | ||||
| 	hashwrite(f, sha1, the_hash_algo->rawsz); | ||||
| 	hashclose(f, NULL, ((opts->flags & WRITE_IDX_VERIFY) | ||||
| 			    ? CSUM_CLOSE : CSUM_FSYNC)); | ||||
| 	return index_name; | ||||
| } | ||||
|  | ||||
| off_t write_pack_header(struct sha1file *f, uint32_t nr_entries) | ||||
| off_t write_pack_header(struct hashfile *f, uint32_t nr_entries) | ||||
| { | ||||
| 	struct pack_header hdr; | ||||
|  | ||||
| 	hdr.hdr_signature = htonl(PACK_SIGNATURE); | ||||
| 	hdr.hdr_version = htonl(PACK_VERSION); | ||||
| 	hdr.hdr_entries = htonl(nr_entries); | ||||
| 	sha1write(f, &hdr, sizeof(hdr)); | ||||
| 	hashwrite(f, &hdr, sizeof(hdr)); | ||||
| 	return sizeof(hdr); | ||||
| } | ||||
|  | ||||
|  | @ -333,14 +333,14 @@ int encode_in_pack_object_header(unsigned char *hdr, int hdr_len, | |||
| 	return n; | ||||
| } | ||||
|  | ||||
| struct sha1file *create_tmp_packfile(char **pack_tmp_name) | ||||
| struct hashfile *create_tmp_packfile(char **pack_tmp_name) | ||||
| { | ||||
| 	struct strbuf tmpname = STRBUF_INIT; | ||||
| 	int fd; | ||||
|  | ||||
| 	fd = odb_mkstemp(&tmpname, "pack/tmp_pack_XXXXXX"); | ||||
| 	*pack_tmp_name = strbuf_detach(&tmpname, NULL); | ||||
| 	return sha1fd(fd, *pack_tmp_name); | ||||
| 	return hashfd(fd, *pack_tmp_name); | ||||
| } | ||||
|  | ||||
| void finish_tmp_packfile(struct strbuf *name_buffer, | ||||
|  |  | |||
							
								
								
									
										4
									
								
								pack.h
								
								
								
								
							
							
						
						
									
										4
									
								
								pack.h
								
								
								
								
							|  | @ -81,7 +81,7 @@ extern const char *write_idx_file(const char *index_name, struct pack_idx_entry | |||
| extern int check_pack_crc(struct packed_git *p, struct pack_window **w_curs, off_t offset, off_t len, unsigned int nr); | ||||
| extern int verify_pack_index(struct packed_git *); | ||||
| extern int verify_pack(struct packed_git *, verify_fn fn, struct progress *, uint32_t); | ||||
| extern off_t write_pack_header(struct sha1file *f, uint32_t); | ||||
| extern off_t write_pack_header(struct hashfile *f, uint32_t); | ||||
| extern void fixup_pack_header_footer(int, unsigned char *, const char *, uint32_t, unsigned char *, off_t); | ||||
| extern char *index_pack_lockfile(int fd); | ||||
|  | ||||
|  | @ -98,7 +98,7 @@ extern int encode_in_pack_object_header(unsigned char *hdr, int hdr_len, | |||
| #define PH_ERROR_PROTOCOL	(-3) | ||||
| extern int read_pack_header(int fd, struct pack_header *); | ||||
|  | ||||
| extern struct sha1file *create_tmp_packfile(char **pack_tmp_name); | ||||
| extern struct hashfile *create_tmp_packfile(char **pack_tmp_name); | ||||
| extern void finish_tmp_packfile(struct strbuf *name_buffer, const char *pack_tmp_name, struct pack_idx_entry **written_list, uint32_t nr_written, struct pack_idx_option *pack_idx_opts, unsigned char sha1[]); | ||||
|  | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 brian m. carlson
						brian m. carlson