Re: [PATCH v2 15/16] config: add core.noshallow to prevent turning a repo into a shallow one
- From
Philip Oakley <philipoakley@iee.org>
- Date
- Jul 23, 2013, 19:44 UTC
- Message-ID
- <3791504D7BB44F5BB08DC5AC34E1CE0E@PhilipOakley>
- In-Reply-To
- <CACsJy8Ddac5r7opAgtk-CAkc=jwmBmmOs7FU6DziysCZ=992dQ@mail.gmail.com>
From: "Duy Nguyen" <pclouds@gmail.com> Sent: Tuesday, July 23, 2013 2:28 AM
Show 23 quoted lines
> On Tue, Jul 23, 2013 at 2:23 AM, Philip Oakley <philipoakley@iee.org> > wrote: >> From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com> >> Subject: [PATCH v2 15/16] config: add core.noshallow to prevent >> turning a >> repo into a shallow one >> >> Surely this should be the default now that it is possible to corrupt >> a >> golden repo by pushing/fetching a shallow repository to it and it >> then >> becomes shallow, and all the followers become shallow as well, with >> consequent problems (IIUC) [PATCH v2 05/16]. >> >> It would be just as easy to change the config to core.allowshallow >> which >> then must be enabled by the user, and can be mentioned in the shallow >> clone >> option's documentation. > > Clarification, it's not really "corrupt". If you have full history > from a ref "A", fetching from another shallow clone does not touch the > history of ref A at all
> (that is if you do _not_ specify --depth).
I hadn't appreciated this conditional.
> It > may add a a shallow ref B, which is the reason the whole repo becomes > shallow.
I had read the initial commit message (in 05/16) as implying that it was possible to fool someone into pulling a shallow repo and that would make their repo just as shallow (that's without a --depth argument to the command). Had that been the case then it would have been possible to loose some data from deep in the DAG. Glad to hear I was mistaken. Perhaps if your comment above is included in the commit message to ensure that clarification is there.
Show 9 quoted lines
>The same goes for push. This is not implemented, but I'm > thinking of adding "clean .git/shallow" to git repack -ad. Then if you > delete ref B and repack -ad, the repo could become full again. > > But yeah, maybe defaulting to no shallow is better. Will do so in the > reroll unless someone objects. > -- > Duy > --
Philip