On Wed, Mar 12, 2025 at 07:17:04PM -0500, Justin Tobler wrote: > diff --git a/Documentation/rev-list-options.adoc b/Documentation/rev-list-options.adoc > index 785c0786e0..166d3cd19e 100644 > --- a/Documentation/rev-list-options.adoc > +++ b/Documentation/rev-list-options.adoc > @@ -361,6 +361,29 @@ ifdef::git-rev-list[] > --progress=<header>:: > Show progress reports on stderr as objects are considered. The > `<header>` text will be printed with each progress update. > + > +-z:: > + Instead of being newline-delimited, each outputted object and its > + accompanying metadata is delimited using NUL bytes in the following > + form: > ++ > +----------------------------------------------------------------------- > +<OID> NUL [<token>=<value> NUL]... > +----------------------------------------------------------------------- > ++ > +Additional object metadata, such as object paths, is printed using the > +`<token>=<value>` form. Token values are printed as-is without any > +encoding/truncation. An OID entry never contains a '=' character and thus > +is used to signal the start of a new object record. Examples: > ++ > +----------------------------------------------------------------------- > +<OID> NUL > +<OID> NUL path=<path> NUL > +----------------------------------------------------------------------- > ++ > +This mode is only compatible with the `--objects` output option. Also, revision > +and pathspec argument parsing on stdin with the `--stdin` option is NUL byte > +delimited instead of using newlines while in this mode. > endif::git-rev-list[] > > History Simplification I feel like this last paragraph, where we talk about `--stdin` being NUL-delimited, should already be mentioned in the first paragraph. Patrick