On Mon, Mar 28 2022, Robert Coup via GitGitGadget wrote: > From: Robert Coup <robert@xxxxxxxxxxx> > > Teach fetch and transports the --refetch option to force a full fetch > without negotiating common commits with the remote. Use when applying a > new partial clone filter to refetch all matching objects. > > [...] > +ifndef::git-pull[] > +--refetch:: > + Instead of negotiating with the server to avoid transferring commits and > + associated objects that are already present locally, this option fetches > + all objects as a fresh clone would. Use this to reapply a partial clone > + filter from configuration or using `--filter=` when the filter > + definition has changed. > +endif::git-pull[] Re my comment on negotiation specifics in 2/7, this documentation is really over-promising depending on what the answer to that is: https://lore.kernel.org/git/220331.86o81mp2w1.gmgdl@xxxxxxxxxxxxxxxxxxx/ I.e. instead of saying that we WILL fetch all objects "just like a clone" shouldn't we have less focus on implementation details here, and assure the user that we'll make their object store "complete" as though --filter hadn't been used, without going into the specifics of what'll happen over the wire? > return -1; > > + /* > + * Similarly, if we need to refetch, we always want to perform a full > + * fetch ignoring existing objects. > + */ > + if (refetch) > + return -1; > + > + One too many \n here.