create_tmp_packfile(): a helper function
authorJunio C Hamano <gitster@pobox.com>
Fri, 28 Oct 2011 18:52:14 +0000 (11:52 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 28 Oct 2011 18:52:14 +0000 (11:52 -0700)
Factor out a small logic out of the private write_pack_file() function
in builtin/pack-objects.c

Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/pack-objects.c
pack-write.c
pack.h

index 6643c1657a7f1dc94e12782000d0780d86c0e155..3258fa96e813de7e91684d758d932477f2b9318f 100644 (file)
@@ -584,16 +584,10 @@ static void write_pack_file(void)
                unsigned char sha1[20];
                char *pack_tmp_name = NULL;
 
-               if (pack_to_stdout) {
+               if (pack_to_stdout)
                        f = sha1fd_throughput(1, "<stdout>", progress_state);
-               } else {
-                       char tmpname[PATH_MAX];
-                       int fd;
-                       fd = odb_mkstemp(tmpname, sizeof(tmpname),
-                                        "pack/tmp_pack_XXXXXX");
-                       pack_tmp_name = xstrdup(tmpname);
-                       f = sha1fd(fd, pack_tmp_name);
-               }
+               else
+                       f = create_tmp_packfile(&pack_tmp_name);
 
                offset = write_pack_header(f, nr_remaining);
                if (!offset)
index 46f3f846be9ba8a4b7d52ac703375223e17244a1..863cce8a09f090d7e7a77e9a9304d589a4b7b47c 100644 (file)
@@ -328,3 +328,13 @@ int encode_in_pack_object_header(enum object_type type, uintmax_t size, unsigned
        *hdr = c;
        return n;
 }
+
+struct sha1file *create_tmp_packfile(char **pack_tmp_name)
+{
+       char tmpname[PATH_MAX];
+       int fd;
+
+       fd = odb_mkstemp(tmpname, sizeof(tmpname), "pack/tmp_pack_XXXXXX");
+       *pack_tmp_name = xstrdup(tmpname);
+       return sha1fd(fd, *pack_tmp_name);
+}
diff --git a/pack.h b/pack.h
index d429d8a66888d4fb9f64a781cb6d3eb347f480f7..0027ac6149eb2a993afd8ade5245ef31536934f8 100644 (file)
--- a/pack.h
+++ b/pack.h
@@ -84,4 +84,7 @@ extern int encode_in_pack_object_header(enum object_type, uintmax_t, unsigned ch
 #define PH_ERROR_PACK_SIGNATURE        (-2)
 #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);
+
 #endif