On Thu, Mar 16, 2017 at 10:27:06AM -0400, Jeff King wrote: > -/* > - * 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; > } Incidentally, this entire function could be implemented as: return git_path_buf(buf, "objects/pack/pack-%s.%s", sha1_to_hex(sha1), ext); as the git_path() functions are smart enough to replace "objects/" with the true object directory when necessary. I don't know if people find that more or less readable. Since it's buried in a helper function, I doubt it matters much either way. The git_path functions do also do some path normalization, which might be of value. -Peff