On Sun, Jul 14, 2024 at 1:00 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > Subject: doc: guide to use of "local" shell language construct > > The scripted Porcelain commands do not allow use of "local" because > it is not universally supported, but we use it liberally in our test > scripts, which means some POSIX compliant shells (like "ksh93") can > not be used to run our tests. > > Document the status quo, and hint that we might want to change the > situation in the fiture. s/fiture/future/ > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> > --- > diff --git c/Documentation/CodingGuidelines w/Documentation/CodingGuidelines > @@ -186,7 +186,9 @@ For shell scripts specifically (not exhaustive): > - Even though "local" is not part of POSIX, we make heavy use of it > in our test suite. We do not use it in scripted Porcelains, and > hopefully nobody starts using "local" before they are reimplemented > - in C ;-) > + in C ;-) Notably, ksh (not just reimplementations but the real one > + from AT&T Research) does not support "local" and cannot be used, > + which we might want to reconsider. The last bit ("which we might want to reconsider") probably belongs in the commit message rather than here in the actual documentation. Saying "we might want to reconsider" doesn't help people new to the project who are looking for guidance _today_. > diff --git c/t/README w/t/README > @@ -850,6 +850,14 @@ And here are the "don'ts:" > + - Don't overuse "local" > + > + Because strictly POSIX-compliant shells do not have to support > + "local", we avoid using it in our scripted Porcelain scripts, but > + we have allowed use of "local" in test scripts. We may want to > + reconsider this and rewrite our tests to also run on shells like > + ksh93. Do not add new use of "local" unnecessarily. Same comment regarding "We may want to reconsider..."; it probably belongs in the commit message, not here.