[prev in list] [next in list] [prev in thread] [next in thread]
List: git
Subject: Re: [PATCH v2 3/4] commit-graph: start parsing generation v2 (again)
From: Derrick Stolee <derrickstolee () github ! com>
Date: 2022-02-28 16:43:59
Message-ID: b65f405e-665b-ae32-aa4e-7dbdc874485d () github ! com
[Download RAW message or body]
On 2/28/2022 10:30 AM, Ævar Arnfjörð Bjarmason wrote:
>
> On Mon, Feb 28 2022, Derrick Stolee via GitGitGadget wrote:
>
>> From: Derrick Stolee <derrickstolee@github.com>
>> [...]
>> + GENERATION_VERSION=2
>> + if test ! -z "$3"
>
> TIL this works somewhere :)
>
> I thought it *might* be unportable behavior (but didn't check at
> first), but it's not! We have a few such cases already.
>
> But IMO much less puzzling would be at least:
>
> if ! test -z "$3"
>
> Or in this case, more plainly:
>
> if test -n "$3"
Sure, that makes sense.
>> + then
>> + GENERATION_VERSION=$3
>> + fi
>> + OPTIONS=
>> + if test $GENERATION_VERSION -gt 1
>> + then
>> + OPTIONS=" read_generation_data"
>> + fi
>
> Or actually, since we don't use $GENERATION_VERSION further down setting
> it to a default etc. here seems a bit odd. Perhaps something closer to:
>
> if test $# -eq 3 && test $3 -gt 1
>
> It's also possible to be more clever as e.g.:
>
> test "${3:-2}" -gt 1
>
> But that hardly seems worth it...
I prefer to use a variable so the code is self-documenting.
>> NUM_COMMITS=9
>> diff --git a/t/t5324-split-commit-graph.sh b/t/t5324-split-commit-graph.sh
>> index 778fa418de2..669ddc645fa 100755
>> --- a/t/t5324-split-commit-graph.sh
>> +++ b/t/t5324-split-commit-graph.sh
>> @@ -30,11 +30,16 @@ graph_read_expect() {
>> then
>> NUM_BASE=$2
>> fi
>> + OPTIONS=
>> + if test -z "$3"
>> + then
>> + OPTIONS=" read_generation_data"
>> + fi
>> cat >expect <<- EOF
>> header: 43475048 1 $(test_oid oid_version) 4 $NUM_BASE
>> num_commits: $1
>> chunks: oid_fanout oid_lookup commit_metadata generation_data
>> - options:
>> + options:$OPTIONS
>> EOF
>> test-tool read-graph >output &&
>> test_cmp expect output
>
> Not a new issue, but it would be nice to have the mostly copy/pasted
> code in a lib-commit-graph.sh or something, but probably too distracting
> for this small series...
These cases are different enough in the needs of the test files
that they cannot be shared without significant complication.
Thanks,
-Stolee
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic