From: Junio C Hamano Date: Tue, 18 Mar 2014 20:50:24 +0000 (-0700) Subject: Merge branch 'sh/finish-tmp-packfile' X-Git-Tag: v2.0.0-rc0~96 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/f4eec8ce05e725a5e30d3d29c47093d4e3e0ce7e?ds=inline;hp=-c Merge branch 'sh/finish-tmp-packfile' * sh/finish-tmp-packfile: finish_tmp_packfile():use strbuf for pathname construction --- f4eec8ce05e725a5e30d3d29c47093d4e3e0ce7e diff --combined builtin/pack-objects.c index 057c54b902,3f427b4e4b..61a55b3c7e --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@@ -755,7 -755,7 +755,7 @@@ static void write_pack_file(void struct object_entry **write_order; if (progress > pack_to_stdout) - progress_state = start_progress("Writing objects", nr_result); + progress_state = start_progress(_("Writing objects"), nr_result); written_list = xmalloc(to_pack.nr_objects * sizeof(*written_list)); write_order = compute_write_order(); @@@ -803,7 -803,7 +803,7 @@@ if (!pack_to_stdout) { struct stat st; - char tmpname[PATH_MAX]; + struct strbuf tmpname = STRBUF_INIT; /* * Packs are runtime accessed in their mtime @@@ -826,23 -826,19 +826,19 @@@ pack_tmp_name, strerror(errno)); } - /* Enough space for "-.pack"? */ - if (sizeof(tmpname) <= strlen(base_name) + 50) - die("pack base name '%s' too long", base_name); - snprintf(tmpname, sizeof(tmpname), "%s-", base_name); + strbuf_addf(&tmpname, "%s-", base_name); if (write_bitmap_index) { bitmap_writer_set_checksum(sha1); bitmap_writer_build_type_index(written_list, nr_written); } - finish_tmp_packfile(tmpname, pack_tmp_name, + finish_tmp_packfile(&tmpname, pack_tmp_name, written_list, nr_written, &pack_idx_opts, sha1); if (write_bitmap_index) { - char *end_of_name_prefix = strrchr(tmpname, 0); - sprintf(end_of_name_prefix, "%s.bitmap", sha1_to_hex(sha1)); + strbuf_addf(&tmpname, "%s.bitmap", sha1_to_hex(sha1)); stop_progress(&progress_state); @@@ -851,10 -847,11 +847,11 @@@ bitmap_writer_select_commits(indexed_commits, indexed_commits_nr, -1); bitmap_writer_build(&to_pack); bitmap_writer_finish(written_list, nr_written, - tmpname, write_bitmap_options); + tmpname.buf, write_bitmap_options); write_bitmap_index = 0; } + strbuf_release(&tmpname); free(pack_tmp_name); puts(sha1_to_hex(sha1)); } @@@ -1213,9 -1210,12 +1210,9 @@@ static int check_pbase_path(unsigned ha if (0 <= pos) return 1; pos = -pos - 1; - if (done_pbase_paths_alloc <= done_pbase_paths_num) { - done_pbase_paths_alloc = alloc_nr(done_pbase_paths_alloc); - done_pbase_paths = xrealloc(done_pbase_paths, - done_pbase_paths_alloc * - sizeof(unsigned)); - } + ALLOC_GROW(done_pbase_paths, + done_pbase_paths_num + 1, + done_pbase_paths_alloc); done_pbase_paths_num++; if (pos < done_pbase_paths_num) memmove(done_pbase_paths + pos + 1, @@@ -2151,7 -2151,7 +2148,7 @@@ static void prepare_pack(int window, in if (nr_deltas && n > 1) { unsigned nr_done = 0; if (progress) - progress_state = start_progress("Compressing objects", + progress_state = start_progress(_("Compressing objects"), nr_deltas); qsort(delta_list, n, sizeof(*delta_list), type_size_sort); ll_find_deltas(delta_list, n, window+1, depth, &nr_done); @@@ -2609,7 -2609,7 +2606,7 @@@ int cmd_pack_objects(int argc, const ch OPT_END(), }; - read_replace_refs = 0; + check_replace_refs = 0; reset_pack_idx_option(&pack_idx_opts); git_config(git_pack_config, NULL); @@@ -2684,7 -2684,7 +2681,7 @@@ prepare_packed_git(); if (progress) - progress_state = start_progress("Counting objects", 0); + progress_state = start_progress(_("Counting objects"), 0); if (!use_internal_rev_list) read_object_list_from_stdin(); else {