Re: [PATCH 2/5] reset: introduce --[no-]refresh option to --mixed
- From
Derrick Stolee <derrickstolee@github.com>
- Date
- Mar 14, 2022, 15:13 UTC
- Message-ID
- <b9ba7ad3-c361-abcd-4735-b011d502dcad@github.com>
- In-Reply-To
- <fac1f57c-1bb8-2458-91ce-db5cb55f2e7d@github.com>
On 3/14/2022 11:05 AM, Derrick Stolee wrote:
> On 3/11/2022 7:08 PM, Victoria Dye via GitGitGadget wrote: >> From: Victoria Dye <vdye@github.com>
Show 21 quoted lines
>> +test_index_refreshed () {
>> +
>> + # To test whether the index is refresh, create a scenario where a
>> + # command will fail if the index is *not* refreshed:
>> + # 1. update the worktree to match HEAD & remove file2 in the index
>> + # 2. reset --mixed to unstage the change from step 1
>> + # 3. read-tree HEAD~1 (which differs from HEAD in file2)
>> + # If the index is refreshed in step 2, then file2 in the index will be
>> + # up-to-date with HEAD and read-tree will succeed (thus failing the
>> + # test). If the index is *not* refreshed, however, the staged deletion
>> + # of file2 from step 1 will conflict with the changes from the tree read
>> + # in step 3, resulting in a failure.
>> +
>> + # Step 0: start with a clean index
>> + git reset --hard HEAD &&
>> +
>> + # Step 1
>> + git rm --cached file2 &&
>> +
>> + # Step 2
>> + git reset $1 --mixed HEAD &&Show 9 quoted lines
> Perhaps you want to have two arguments: one for config settings > and another for arguments, meaning your call in test_index_refreshed > should be > > git $1 reset $2 --mixed HEAD > > and calls like this should be > > test_index_refreshed "-c reset.quiet=true" "" &&
After looking at your other examples, I thought of another example that you might want to consider.
In the helper, use:
git $@ --mixed HEAD &&
and then for the callers, use
test_index_refreshed refresh &&
or
test_index_refreshed -c reset.quiet=true refresh &&
or
test_index_refreshed refresh --quiet &&
and similarly through the other tests.
Thanks, -Stolee