Re: [PATCH 1/5] t1092: test merge conflicts outside cone
- From
Derrick Stolee <stolee@gmail.com>
- Date
- Jul 26, 2021, 14:10 UTC
- Message-ID
- <ced1c678-225b-c915-d019-f9ebfb3898b6@gmail.com>
- In-Reply-To
- <CABPp-BF-UVZKWmsohjCzRLpbHZii+1g=SShEYg_cwScsOHi=5g@mail.gmail.com>
On 7/23/2021 1:34 PM, Elijah Newren wrote:
> On Wed, Jul 21, 2021 at 2:07 PM Derrick Stolee via GitGitGadget > <gitgitgadget@gmail.com> wrote: >> >> From: Derrick Stolee <dstolee@microsoft.com>
...
>> + # 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.
Show 5 quoted lines
>> + 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@mail.gmail.com/)
'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