From: Junio C Hamano Date: Thu, 04 Jun 2009 07:26:08 GMT Subject: Re: Request for detailed documentation of git pack protocol Message-ID: <7v63fczchb.fsf@alter.siamese.dyndns.org> In-Reply-To: <4A277507.2060409@op5.se> Andreas Ericsson writes: > How is "no tags present" signalled? Without such a signal, the client > must always issue a subsequent request every time there are no tags > embedded in the received pack, as it can't know if the server ignored > the option silently or if there just aren't any new tags. The fetcher first learns the set of tags and what objects they point at. That's in the first part of the upload-pack protocol. Of course, if there is no tag, you won't see them advertised, so you can know. After finishing the main part of the object transfer, if some of the objects that are pointed at by tags are present (and reachable from refs), but the tags that point at them do not exist yet, that is a sign that the uploader didn't give you these tag objects. Then you can turn around to request those tags by initiating another exchange, and ask for them with "want" lines.