Re: Feature Request git clone shallow-include
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Feb 20, 2019, 01:22 UTC
- Message-ID
- <CACsJy8AS5eNO6gACGtRZq=qdQGkQ3jmQPVivPG+=du9u9hKYcg@mail.gmail.com>
- In-Reply-To
- <CAApa7v-F7Y_WR11V-3jc-R4Y1qSv5PPof6GWvJuF_XMeTcC2zw@mail.gmail.com>
On Wed, Feb 20, 2019 at 7:07 AM Joe Enzminger <joe.enzminger@exactasystems.com> wrote:
Show 7 quoted lines
> > 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