From: Jonathan Nieder Date: Tue, 02 Dec 2014 04:45:22 GMT Subject: Re: http-protocol question Message-ID: <20141202044522.GZ6527@google.com> In-Reply-To: Hi, Bryan Turner wrote: > The reason I ask is that there is a race condition that exists where > the ref advertisement lists refs/heads/foo at abc1234, and then foo is > deleted before the actual upload-pack request comes in. Can you say more about the context? For example, was this actually happening, or is this for the sake of understanding the protocol better? I ask because knowing the context might help us give more specific advice. Sometimes when people delete a branch they really want those objects to be inaccessible *right away*. So for such people, git's behavior of failing the request unless the objects are still accessible by some other path is helpful. A stateful server could theoretically cache the list of objects they have advertised for a short time, to avoid clients having to suffer when something becomes inaccessible during the window between the upload-pack advertisement and upload-pack request. Or a permissive server can allow all wants except a specific blacklist (and some people do that). Jonathan