path: root/transport.h
diff options
authorTay Ray Chuan <>2010-02-16 07:18:21 (GMT)
committerJunio C Hamano <>2010-02-16 17:11:22 (GMT)
commitb0d66e156c5b312d468344569202d8ca4094f67f (patch)
treee4b403de21e001de39b390d74f695a0162ebf60d /transport.h
parente923eaeb901ff056421b9007adcbbce271caa7b6 (diff)
transport: add got_remote_refs flag
transport_get_remote_refs() in tranport.c checks transport->remote_refs to determine whether transport->get_refs_list() should be invoked. The logic is "if it is NULL, we haven't run ls-remote to find out yet". However, transport->remote_refs could still be NULL while cloning from an empty repository. This causes get_refs_list() to be run unnecessarily. Introduce a flag, transport->got_remote_refs, to more explicitly record if we have run transport->get_refs_list() already. Signed-off-by: Tay Ray Chuan <> Acked-by: Jeff King <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'transport.h')
1 files changed, 6 insertions, 0 deletions
diff --git a/transport.h b/transport.h
index 7cea5cc..6dd9ae1 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.