summaryrefslogtreecommitdiff
path: root/packfile.c
diff options
context:
space:
mode:
authorJonathan Tan <jonathantanmy@google.com>2017-08-18 15:20:16 -0700
committerJunio C Hamano <gitster@pobox.com>2017-08-23 15:12:06 -0700
commit4f39cd821d1756f5f6d145f987576660136931ee (patch)
treec7a0b1de6a17b1336f82bbbd598d766e6d0030e3 /packfile.c
parent39566494226919aa18951f2abff6491f5547d377 (diff)
downloadgit-4f39cd821d1756f5f6d145f987576660136931ee.tar.gz
pack: move pack name-related functions
Currently, sha1_file.c and cache.h contain many functions, both related to and unrelated to packfiles. This makes both files very large and causes an unclear separation of concerns. Create a new file, packfile.c, to hold all packfile-related functions currently in sha1_file.c. It has a corresponding header packfile.h. In this commit, the pack name-related functions are moved. Subsequent commits will move the other functions. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'packfile.c')
-rw-r--r--packfile.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/packfile.c b/packfile.c
new file mode 100644
index 0000000000..0d191dfd60
--- /dev/null
+++ b/packfile.c
@@ -0,0 +1,23 @@
+#include "cache.h"
+
+char *odb_pack_name(struct strbuf *buf,
+ const unsigned char *sha1,
+ const char *ext)
+{
+ strbuf_reset(buf);
+ strbuf_addf(buf, "%s/pack/pack-%s.%s", get_object_directory(),
+ sha1_to_hex(sha1), ext);
+ return buf->buf;
+}
+
+char *sha1_pack_name(const unsigned char *sha1)
+{
+ static struct strbuf buf = STRBUF_INIT;
+ return odb_pack_name(&buf, sha1, "pack");
+}
+
+char *sha1_pack_index_name(const unsigned char *sha1)
+{
+ static struct strbuf buf = STRBUF_INIT;
+ return odb_pack_name(&buf, sha1, "idx");
+}