Re: [RFC/PATCH 2/5] ls-files: make "mode" in show_ce() loop a variable
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Mar 24, 2021, 00:46 UTC
- Message-ID
- <87wntxpedt.fsf@evledraar.gmail.com>
- In-Reply-To
- <CABPp-BFA+6--PkJfVfERF-ak9NGd6J0=Jhzro1nqqJ+X-LH3xg@mail.gmail.com>
On Wed, Mar 17 2021, Elijah Newren wrote:
Show 35 quoted lines
> On Wed, Mar 17, 2021 at 6:28 AM Ævar Arnfjörð Bjarmason
> <avarab@gmail.com> wrote:
>>
>> In a subsequent commit I'll optionally change the mode in a new sparse
>> mode, let's do this first to make that change smaller.
>>
>> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
>> ---
>> builtin/ls-files.c | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/builtin/ls-files.c b/builtin/ls-files.c
>> index eb72d16493..4db75351f2 100644
>> --- a/builtin/ls-files.c
>> +++ b/builtin/ls-files.c
>> @@ -242,9 +242,17 @@ static void show_ce(struct repository *repo, struct dir_struct *dir,
>> if (!show_stage) {
>> fputs(tag, stdout);
>> } else {
>> + unsigned int mode = ce->ce_mode;
>> + if (show_sparse && S_ISSPARSEDIR(mode))
>> + /*
>> + * We could just do & 0177777 all the
>> + * time, just make it clear this is
>> + * for --stage-sparse.
>> + */
>> + mode &= 0177777;
>
> I could kind of see referencing the magic constant 0177777 in a test-*
> source file, but it really needs an explanation when showing up in
> actual git source code. At least reference something about how
> cache.h mentions these are the mode bits, or better yet #define this
> constant somewhere in cache.h with an explanation.
>
> Also, what is --stage-sparse?A relic from a WIP version of this patch. I ended up just calling it --sparse in 3/5.
Show 9 quoted lines
>> printf("%s%06o %s %d\t",
>> tag,
>> - ce->ce_mode,
>> + mode,
>> find_unique_abbrev(&ce->oid, abbrev),
>> ce_stage(ce));
>> }
>> --
>> 2.31.0.260.g719c683c1d