diff options
author | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-05-09 16:18:13 +0200 |
---|---|---|
committer | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-05-09 16:18:13 +0200 |
commit | 11678b37183f3b13ad3b9eb4e4916a036d7a97d8 (patch) | |
tree | 1ed41ffd7e0e0d6daeeb6eeb21a9444127724e65 /src | |
parent | 0536afcaa9c27105b184d2fccac1a7b9e778f27c (diff) | |
download | libgit2-11678b37183f3b13ad3b9eb4e4916a036d7a97d8.tar.gz |
fetch: filter tag annotation pseudo-refs while generating wants
These objects aren't considered as being advertised, so asking for
them will cause the remote end to close the connection. This makes the
checking in update_tips() unnecessary, because they don't get inserted
in the list.
Diffstat (limited to 'src')
-rw-r--r-- | src/fetch.c | 4 | ||||
-rw-r--r-- | src/remote.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/fetch.c b/src/fetch.c index 1944bd005..08c789ddb 100644 --- a/src/fetch.c +++ b/src/fetch.c @@ -36,6 +36,10 @@ static int filter_ref__cb(git_remote_head *head, void *payload) /* If it doesn't match the refpec, we don't want it */ if (!git_refspec_src_matches(p->spec, head->name)) return 0; + + /* Don't even try to ask for the annotation target */ + if (!git__suffixcmp(head->name, "^{}")) + return 0; } /* If we have the object, mark it so we don't ask for it */ diff --git a/src/remote.c b/src/remote.c index 1857d328e..a5cfc822e 100644 --- a/src/remote.c +++ b/src/remote.c @@ -353,10 +353,6 @@ int git_remote_update_tips(git_remote *remote, int (*cb)(const char *refname, co for (; i < refs->length; ++i) { head = refs->contents[i]; - /* Skip tag annotations */ - if (!git__suffixcmp(head->name, "^{}")) - continue; - if (git_refspec_transform_r(&refname, spec, head->name) < 0) goto on_error; |