On 7/23/2021 1:34 PM, Elijah Newren wrote: > On Wed, Jul 21, 2021 at 2:07 PM Derrick Stolee via GitGitGadget > <gitgitgadget@xxxxxxxxx> wrote: >> >> From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> ... >> + # 3. rename the file to another sparse filename > > But...that doesn't resolve the conflict. Shouldn't this be titled > "accept the conflict & rename the file elsewhere"? Sure. I'm less focused on the content of the file and more the steps the user might have taken to resolve the conflict. >> + run_on_all mv folder2/a folder2/z && >> + test_all_match git add folder2 && > > 'mv' rather than 'git mv', then followed by 'git add'? Any reason for > this order rather than git add followed by git mv? I'm trying to mimic that a user might realize that a filename might need to be renamed (say, because a naming convention changed that is causing the conflict) and I don't expect users to use 'git mv' to do this action. > Also, if you really do want to move first, did you use mv instead of > "git mv" due to the latter's shortcoming of only operating on stage 0? > (https://lore.kernel.org/git/CABPp-BGJdwpwhQUp4Wa4bKBp4hQFB9OM3N1FXH7SzY0mvLDa7Q@xxxxxxxxxxxxxx/) 'git mv' had not occurred to me as a thing to do in this case. I'm focused on ensuring that 'git add' works as expected to update the index in response to filesystem changes. > Regardless of order, though, I still think mv or add should require a > --force to rename or add a file outside the sparsity paths given the > deferred negative surprises for users around such files. (Or come up > with a solid way to remove those surprises.) --force is focused on _ignored_ files. I imagine that it could be repurposed to allow entries outside of the sparse-checkout definition, but we would want to be careful for users who are adding the entire directory, not just the individual files, as they might _also_ get any ignored files that exist in that directory. That might justify creating a new option instead. Further, the error message reported when adding something outside of the sparse cone should probably mention whatever option exists as a way for users to bypass this limitation. I'll collect my thoughts (in response to your detailed thoughts shared on my cover letter) and start a new thread about hardening this behavior. I've got an internal ticket tracking this, and I want to wrap my head around all of the interesting commands (add, mv, rm, update-index?) and create a full recommendation to bring as an RFC. Of course, if someone else wants to create this clear vision in the meantime I will not complain. Thanks, -Stolee