Re: [PATCH 1/6] test-lib: introduce test_commit_bulk
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 28, 2019, 17:53 UTC
- Message-ID
- <xmqqlfxl8ul6.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <20190628093911.GA27329@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 8 quoted lines
> +# The message, filename, and contents strings are evaluated by the shell inside > +# double-quotes, with $n set to the current commit number. So you can do: > +# > +# test_commit_bulk --filename=file --contents='modification $n' > +# > +# to have every commit touch the same file, but with unique content. Spaces are > +# OK, but you must escape any metacharacters (like backslashes or > +# double-quotes) you do not want expanded.
Nice.
Show 17 quoted lines
> +test_commit_bulk () {
> + indir=
> + ...
> + while test $# -gt 0
> + do
> + case "$1" in
> + -C)
> + indir=$2
> + shift
> + ;;
> + ...
> + esac
> + shift
> + done
> + total=$1
> +
> + in_dir=${indir:+-C "$indir"}I thought that this assignment to $in_dir would be unnecessary if we parsed -C directly into it, i.e.
... -C) in_dir="-C $indir" shift ;; ...
but you probably could pass -C '' to defeat an $in_dir that was set earlier by using a separate variable?
Messages and other stuff are made `eval`-safe, but this one does not care much about quoting, which made me curious.
Reading further, though, I do not seem to see where this variable is referred to, and that is the answer to my puzzlement. This must be a leftover that was written once before but no longer is used. We can remove $in_dir while keeping the initialization and assignment to $indir as-is, I think.
All uses of $indir in the remainder of the function look $IFS-safe, which is good.