Re: [PATCH v2 4/6] rev-list: support delimiting objects with NUL bytes
On 25/03/13 01:55PM, Patrick Steinhardt wrote:
Show 38 quoted lines
> 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.
That's fair. I'll move the `--stdin` part to the beginning.
-Justin