diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-02-21 12:01:03 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-02-21 12:01:03 -0800 |
commit | cab1b013e6f7cc52806926a792c6798f4c7ac4be (patch) | |
tree | 83f6255c8b7fd2beb7abd2c356eb655509ef988c | |
parent | Merge branch 'hm/maint-imap-send-crlf' (diff) | |
parent | transport: add got_remote_refs flag (diff) | |
download | tgif-cab1b013e6f7cc52806926a792c6798f4c7ac4be.tar.xz |
Merge branch 'tc/maint-transport-ls-remote-with-void'
* tc/maint-transport-ls-remote-with-void:
transport: add got_remote_refs flag
-rw-r--r-- | transport.c | 5 | ||||
-rw-r--r-- | transport.h | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/transport.c b/transport.c index 3846aacb47..08e4fa0354 100644 --- a/transport.c +++ b/transport.c @@ -918,6 +918,7 @@ struct transport *transport_get(struct remote *remote, const char *url) if (!remote) die("No remote provided to transport_get()"); + ret->got_remote_refs = 0; ret->remote = remote; helper = remote->foreign_vcs; @@ -1079,8 +1080,10 @@ int transport_push(struct transport *transport, const struct ref *transport_get_remote_refs(struct transport *transport) { - if (!transport->remote_refs) + if (!transport->got_remote_refs) { transport->remote_refs = transport->get_refs_list(transport, 0); + transport->got_remote_refs = 1; + } return transport->remote_refs; } diff --git a/transport.h b/transport.h index 7cea5cc723..6dd9ae182f 100644 --- a/transport.h +++ b/transport.h @@ -20,6 +20,12 @@ struct transport { const struct ref *remote_refs; /** + * Indicates whether we already called get_refs_list(); set by + * transport.c::transport_get_remote_refs(). + */ + unsigned got_remote_refs : 1; + + /** * Returns 0 if successful, positive if the option is not * recognized or is inapplicable, and negative if the option * is applicable but the value is invalid. |