git-repack --max-pack-size: code restructuring
PATCH 2/8 git-repack --max-pack-size: code restructuring
Move write_index_file() call from cnd_pack_objects() to write_pack_file() since only the latter will know how many times to call write_index_file(). Add forward declarations and make "base_name" file scope again.
Signed-off-by Dana L. How <[email protected]>
--- builtin-pack-objects.c | 64 ++++++++++++++++++++++++----------------------- 1 files changed, 33 insertions(+), 31 deletions(-)
builtin-pack-objects.c +33 -31
@@ -62,6 +62,7 @@ static int incremental;static int allow_ofs_delta;static const char *pack_tmp_name, *idx_tmp_name;static char tmpname[PATH_MAX ]; +static const char *base_name;static unsigned char pack_file_sha1[20 ];static int progress =1 ;static int window =10 ;
@@ -561,7 +562,11 @@ static off_t write_one(struct sha1file *f,return offset + size; } -static off_t write_pack_file (void ) +/* forward declarations for write_pack_file */ +static void write_index_file (off_t last_obj_offset,unsigned char *sha1); +static int adjust_perm (const char *path,mode_t mode); + +static void write_pack_file (void ) {uint32_t i;struct sha1file *f;
@@ -605,7 +610,32 @@ static off_t write_pack_file(void)die ("wrote %u objects while expecting %u" , written, nr_result);sha1close (f, pack_file_sha1,1 ); -return last_obj_offset; +if (!pack_to_stdout) { +unsigned char object_list_sha1[20 ]; +mode_t mode =umask (0 ); + +umask (mode); + mode =0444 & ~mode; + +write_index_file (last_obj_offset, object_list_sha1); +snprintf (tmpname,sizeof (tmpname),"%s-%s.pack" , + base_name,sha1_to_hex (object_list_sha1)); +if (adjust_perm (pack_tmp_name, mode)) +die ("unable to make temporary pack file readable: %s" , +strerror (errno)); +if (rename (pack_tmp_name, tmpname)) +die ("unable to rename temporary pack file: %s" , +strerror (errno)); +snprintf (tmpname,sizeof (tmpname),"%s-%s.idx" , + base_name,sha1_to_hex (object_list_sha1)); +if (adjust_perm (idx_tmp_name, mode)) +die ("unable to make temporary index file readable: %s" , +strerror (errno)); +if (rename (idx_tmp_name, tmpname)) +die ("unable to rename temporary index file: %s" , +strerror (errno)); +puts (sha1_to_hex (object_list_sha1)); + } }static int sha1_sort (const void *_a,const void *_b)
@@ -1588,8 +1618,6 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)int use_internal_rev_list =0 ;int thin =0 ;uint32_t i; -off_t last_obj_offset; -const char *base_name =NULL ;const char **rp_av;int rp_ac_alloc =64 ;int rp_ac;
@@ -1740,33 +1768,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)fprintf (stderr,"Result has %u objects.\n" , nr_result);if (nr_result)prepare_pack (window, depth); - last_obj_offset =write_pack_file (); -if (!pack_to_stdout) { -unsigned char object_list_sha1[20 ]; -mode_t mode =umask (0 ); - -umask (mode); - mode =0444 & ~mode; - -write_index_file (last_obj_offset, object_list_sha1); -snprintf (tmpname,sizeof (tmpname),"%s-%s.pack" , - base_name,sha1_to_hex (object_list_sha1)); -if (adjust_perm (pack_tmp_name, mode)) -die ("unable to make temporary pack file readable: %s" , -strerror (errno)); -if (rename (pack_tmp_name, tmpname)) -die ("unable to rename temporary pack file: %s" , -strerror (errno)); -snprintf (tmpname,sizeof (tmpname),"%s-%s.idx" , - base_name,sha1_to_hex (object_list_sha1)); -if (adjust_perm (idx_tmp_name, mode)) -die ("unable to make temporary index file readable: %s" , -strerror (errno)); -if (rename (idx_tmp_name, tmpname)) -die ("unable to rename temporary index file: %s" , -strerror (errno)); -puts (sha1_to_hex (object_list_sha1)); - } +write_pack_file ();if (progress)fprintf (stderr,"Total %u (delta %u), reused %u (delta %u)\n" , written, written_delta, reused, reused_delta);
Signature · 1 line
1.5.2.rc0.766.gba60-dirty