diff options
author | Jeff King <peff@peff.net> | 2017-03-16 15:27:06 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-03-16 19:05:17 +0100 |
commit | 1cec8c634fb76ecee862ff88066f55b63b7d5ff7 (patch) | |
tree | e1fe179f591e8665a02c707d301bbcf0be01aca0 | |
parent | move odb_* declarations out of git-compat-util.h (diff) | |
download | git-1cec8c634fb76ecee862ff88066f55b63b7d5ff7.tar.xz git-1cec8c634fb76ecee862ff88066f55b63b7d5ff7.zip |
sha1_file.c: make pack-name helper globally accessible
We provide sha1_pack_name() and sha1_pack_index_name(), but
the more generic form (which takes its own strbuf and an
arbitrary extension) is only used to implement the other
two. Let's make it available, but clean up a few things:
1. Name it odb_pack_name(), as the original
sha1_get_pack_name() is long but not all that
descriptive.
2. Switch the strbuf argument to the beginning, so that it
matches similar path-building functions like
git_path_buf().
3. Clean up the out-dated docstring and move it to the
public declaration.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | cache.h | 9 | ||||
-rw-r--r-- | sha1_file.c | 17 |
2 files changed, 15 insertions, 11 deletions
@@ -1569,6 +1569,15 @@ extern void pack_report(void); extern int odb_mkstemp(char *template, size_t limit, const char *pattern); /* + * Generate the filename to be used for a pack file with checksum "sha1" and + * extension "ext". The result is written into the strbuf "buf", overwriting + * any existing contents. A pointer to buf->buf is returned as a convenience. + * + * Example: odb_pack_name(out, sha1, "idx") => ".git/objects/pack/pack-1234..idx" + */ +extern char *odb_pack_name(struct strbuf *buf, const unsigned char *sha1, const char *ext); + +/* * Create a pack .keep file in the object database's pack directory, for * a pack with checksum "sha1". The return value is a file descriptor opened * for writing, or -1 on error. The name of the keep file is written to "name". diff --git a/sha1_file.c b/sha1_file.c index ec957db5e1..df98c7f0dc 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -203,31 +203,26 @@ static const char *alt_sha1_path(struct alternate_object_database *alt, return buf->buf; } -/* - * Return the name of the pack or index file with the specified sha1 - * in its filename. *base and *name are scratch space that must be - * provided by the caller. which should be "pack" or "idx". - */ -static char *sha1_get_pack_name(const unsigned char *sha1, - struct strbuf *buf, - const char *which) + 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), which); + sha1_to_hex(sha1), ext); return buf->buf; } char *sha1_pack_name(const unsigned char *sha1) { static struct strbuf buf = STRBUF_INIT; - return sha1_get_pack_name(sha1, &buf, "pack"); + return odb_pack_name(&buf, sha1, "pack"); } char *sha1_pack_index_name(const unsigned char *sha1) { static struct strbuf buf = STRBUF_INIT; - return sha1_get_pack_name(sha1, &buf, "idx"); + return odb_pack_name(&buf, sha1, "idx"); } struct alternate_object_database *alt_odb_list; |