On Wed, Feb 20, 2019 at 7:07 AM Joe Enzminger <joe.enzminger@xxxxxxxxxxxxxxxxx> wrote: > > Currently, git clone supports shallow-exclude=<tag-name>. The client > will clone up to, but not including, the commit with the tag. > > It would be useful to have the ability to include the commit with the > tag. The suggestion would be to add a "shallow-include" options to > clone to support this behavior. So exclude the tag's parents and everything before, but keep the tag, correct? I think if we support --shallow-exclude=<tag>^ then it should work the way you want (if the tag is a normal merge you may need to add --shallow-exclude=<tag>^2 as well). And you can do even fancier thing like --shallow-exclude=<tag>~3 (i.e. exclude the grand grand parent of the tag, but keep the tag and grand parents). We will need to restrict extended SHA-1 syntax to a safe subset of course. > I have tried to use shallow-exclude with a follow on git fetch > --deepen=1, but it always returns "fatal: error in object; unshallow > <sha1>" -- Duy