aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2013-02-01 21:08:51 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2013-02-01 21:11:32 +0100
commit05da4c2822f60649786c0dd81f01a3855846248f (patch)
tree22f29dfc665c75fca969421b4dece278fe43cfc1
parent225c8aba3171156fb917abe043ea55797e2cc1f9 (diff)
downloadcgit-05da4c2822f60649786c0dd81f01a3855846248f.tar.gz
cgit-05da4c2822f60649786c0dd81f01a3855846248f.tar.xz
Support unannotated tags in git-clone.
Matthew McClintock reported that older unannotated tags were not correctly being cloned and did not appear in info/refs. Further investigation revealed some dubious prefix comparison code for determining whether or not to write refs in info/refs. After comparing it with git's own http-backend.c, it appears upstream does not use this prefix logic. OTOH, I don't know what the reasoning was when the prefix logic was introduced. It appears to me to just be buggy, though it's possible there are other reasons, and we'll have to revisit this commit. But for now, Works For Me. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Matthew McClintock <msm@freescale.com> Reported-by: Matthew McClintock <msm@freescale.com>
-rw-r--r--ui-clone.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/ui-clone.c b/ui-clone.c
index 81e7a4e..fdea24f 100644
--- a/ui-clone.c
+++ b/ui-clone.c
@@ -19,12 +19,10 @@ static int print_ref_info(const char *refname, const unsigned char *sha1,
if (!(obj = parse_object(sha1)))
return 0;
- if (!strcmp(refname, "HEAD") || !prefixcmp(refname, "refs/heads/"))
- htmlf("%s\t%s\n", sha1_to_hex(sha1), refname);
- else if (!prefixcmp(refname, "refs/tags") && obj->type == OBJ_TAG) {
+ htmlf("%s\t%s\n", sha1_to_hex(sha1), refname);
+ if (obj->type == OBJ_TAG) {
if (!(obj = deref_tag(obj, refname, 0)))
return 0;
- htmlf("%s\t%s\n", sha1_to_hex(sha1), refname);
htmlf("%s\t%s^{}\n", sha1_to_hex(obj->sha1), refname);
}
return 0;