diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2012-01-17 06:50:33 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-01-17 11:55:04 -0800 |
commit | 30249ee68fa5fa63bfb9bb417987b0547253b8e7 (patch) | |
tree | fd474eab1ad3af967bafb425fa6bcc00b209ebc5 | |
parent | e6ed3ca651fac702f9d9a9ef64a14c7efadf7365 (diff) | |
download | git-30249ee68fa5fa63bfb9bb417987b0547253b8e7.tar.gz |
add_packed_ref(): new function in the refs API.
Add a new function add_packed_ref() that adds a reference directly to
the in-memory packed reference cache. This will be useful for
creating local references while cloning.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | refs.c | 6 | ||||
-rw-r--r-- | refs.h | 6 |
2 files changed, 12 insertions, 0 deletions
@@ -319,6 +319,12 @@ static struct ref_array *get_packed_refs(struct ref_cache *refs) return &refs->packed; } +void add_packed_ref(const char *refname, const unsigned char *sha1) +{ + add_ref(get_packed_refs(get_ref_cache(NULL)), + create_ref_entry(refname, sha1, REF_ISPACKED, 1)); +} + static void get_ref_dir(struct ref_cache *refs, const char *base, struct ref_array *array) { @@ -51,6 +51,12 @@ extern int for_each_rawref(each_ref_fn, void *); extern void warn_dangling_symref(FILE *fp, const char *msg_fmt, const char *refname); /* + * Add a reference to the in-memory packed reference cache. To actually + * write the reference to the packed-refs file, call pack_refs(). + */ +extern void add_packed_ref(const char *refname, const unsigned char *sha1); + +/* * Extra refs will be listed by for_each_ref() before any actual refs * for the duration of this process or until clear_extra_refs() is * called. Only extra refs added before for_each_ref() is called will |