Re: [PATCH 5/5] cat-file: Introduce new option to delimit output with NUL characters
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 5, 2023, 23:54 UTC
- Message-ID
- <xmqq35355utz.fsf@gitster.g>
- In-Reply-To
- <9900512f-b0da-2e47-f1ab-ed51ec2c78ff@gmail.com>
Phillip Wood <phillip.wood123@gmail.com> writes:
Show 23 quoted lines
>> Instead, introduce a new option `-Z` that switches to NUL-delimited >> input and output. The old `-z` option is marked as deprecated with a >> hint that its output may become unparsable. > > The commit message explains the problem well, I agree adding a new > option is the cleanest solution. > >... >> @@ -246,6 +246,12 @@ respectively print: >> -z:: >> Only meaningful with `--batch`, `--batch-check`, or >> `--batch-command`; input is NUL-delimited instead of >> + newline-delimited. This option is deprecated in favor of >> + `-Z` as the output can otherwise be ambiguous. >> + >> +-Z:: >> + Only meaningful with `--batch`, `--batch-check`, or >> + `--batch-command`; input and output is NUL-delimited instead of >> newline-delimited. > > The documentation changes look good. I wonder if we should put the > documentation for "-Z" above "-z" so users see the preferred option > first.
Hmph, I expected "-z" and "-Z" to be orthogonal, the former controlling how input records are delimited, the latter controlling how output records are delimited, as it usually is a good idea to keep things that could be orthogonal to be orthogonal to avoid unnecessarily robbing users flexibility. "-Z is a new way that is preferred over -z" was something I did not expect, actually.
I am not outright rejecting such a deliberately limiting design, but I'll have to think about it a bit.