From: Duy Nguyen Date: Mon, 04 Jun 2018 14:44:07 GMT Subject: Re: [PATCH] upload-pack: reject shallow requests that would return nothing Message-ID: In-Reply-To: On Mon, Jun 4, 2018 at 12:46 PM, Junio C Hamano wrote: > Nguyễn Thái Ngọc Duy writes: > >> Shallow clones with --shallow-since or --shalow-exclude work by >> running rev-list to get all reachable commits, then draw a boundary >> between reachable and unreachable and send "shallow" requests based on >> that. >> >> The code does miss one corner case: if rev-list returns nothing, we'll >> have no border and we'll send no shallow requests back to the client >> (i.e. no history cuts). This essentially means a full clone (or a full >> branch if the client requests just one branch). One example is the >> oldest commit is older than what is specified by --shallow-since. > > "the newest commit is older than", isn't it? That is, the cutoff > point specified is newer than the existing history. Yes. As a result, the entirely history is cut, including the tip. --shallow-exclude could also lead to this situation if the user accidentally excludes everything. -- Duy