Re: [PATCH v2 3/3] pretty: add abbrev option to %(describe)
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Oct 26, 2021, 05:36 UTC
- Message-ID
- <CAPig+cT3u5uLq46Cyg3HZnGqy+UseHA-CN4dMDV1nYVyHkH-+Q@mail.gmail.com>
- In-Reply-To
- <20211026013452.1372122-4-eschwartz@archlinux.org>
On Mon, Oct 25, 2021 at 9:36 PM Eli Schwartz <eschwartz@archlinux.org> wrote:
Show 22 quoted lines
> The %(describe) placeholder by default, like `git describe`, uses a > seven-character abbreviated commit object name. This may not be > sufficient to fully describe all commits in a given repository, > resulting in a placeholder replacement changing its length because the > repository grew in size. This could cause the output of git-archive to > change. > > Add the --abbrev option to `git describe` to the placeholder interface > in order to provide tools to the user for fine-tuning project defaults > and ensure reproducible archives. > > One alternative would be to just always specify --abbrev=40 but this may > be a bit too biased... > > Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> > --- > diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt > @@ -222,6 +222,10 @@ The placeholders are: > +** 'abbrev=<N>': Instead of using the default number of hexadecimal digits > + (which will vary according to the number of objects in the repository with a > + default of 7) of the abbreviated object name, use <n> digits, or as many digits > + as needed to form a unique object name.
Inconsistent mix of `<N>` and `<n>`.
Show 7 quoted lines
> diff --git a/pretty.c b/pretty.c
> @@ -1245,6 +1246,19 @@ static size_t parse_describe_args(const char *start, struct strvec *args)
> + case OPT_INTEGER:
> + if (match_placeholder_arg_value(arg, option[i].name, &arg,
> + &argval, &arglen) && arglen) {
> + if (!arglen)
> + return 0;Same question I asked while reviewing the other patch regarding checking `arglen` in both conditionals: `if (... && arglen)` vs. `if (!arglen)`