[PATCH 7/7] sha1_file: write ref_name to link object
- From
Ramkumar Ramachandra <artagnon@gmail.com>
- Date
- Apr 4, 2013, 18:30 UTC
- Message-ID
- <1365100243-13676-8-git-send-email-artagnon@gmail.com>
- In-Reply-To
- <1365100243-13676-1-git-send-email-artagnon@gmail.com>
Great. Now, we just have to write refs/modules/<branch>/* at commit-time.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> --- sha1_file.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/sha1_file.c b/sha1_file.c index a8a6d72..2ea101a 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -2874,6 +2874,7 @@ int index_path(unsigned char *sha1, const char *path, struct stat *st, unsigned char pathbuf[PATH_MAX]; const char *submodule_gitdir; unsigned char checkout_rev[20]; + char *ref_name; switch (st->st_mode & S_IFMT) { case S_IFREG: @@ -2915,9 +2916,18 @@ int index_path(unsigned char *sha1, const char *path, struct stat *st, unsigned if (resolve_gitlink_ref(path, "HEAD", checkout_rev) < 0) die("Unable to resolve submodule HEAD"); + /* Construct a ref_name from path */ + sprintf(pathbuf, "%s", path); + pathbuf[strlen(pathbuf) - 1] = '\0'; /* Remove trailing slash */ + if (strchr(pathbuf, '/')) + ref_name = xstrdup(strrchr(pathbuf, '/') + 1); + else + ref_name = xstrdup(pathbuf); + /* Add fields to the strbuf */ strbuf_addf(&sb, "upstream_url = %s\n", (char *) upstream_url); strbuf_addf(&sb, "checkout_rev = %s\n", sha1_to_hex(checkout_rev)); + strbuf_addf(&sb, "ref_name = %s\n", ref_name); if (!(flags & HASH_WRITE_OBJECT)) hash_sha1_file(sb.buf, sb.len, link_type, sha1); else if (write_sha1_file(sb.buf, sb.len, link_type, sha1))
-- 1.8.2.380.g0d4e79b