Re: [PATCH 1/8] ls-files: add --json to dump the index
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Jun 24, 2019, 12:50 UTC
- Message-ID
- <CACsJy8B7j=G2VdYPU8W4eoGJhmJ=7r5gK0FV2QQ8twjzNQQzuQ@mail.gmail.com>
- In-Reply-To
- <e3b8d7bf-486d-d52f-9a33-6a7ff837552e@gmail.com>
On Wed, Jun 19, 2019 at 8:03 PM Derrick Stolee <stolee@gmail.com> wrote:
Show 34 quoted lines
> > - show_files(the_repository, &dir);
> > -
> > - if (show_resolve_undo)
> > - show_ru_info(the_repository->index);
> > + if (!show_json) {
> > + show_files(the_repository, &dir);
> > +
> > + if (show_resolve_undo)
> > + show_ru_info(the_repository->index);
> > + } else {
> > + struct json_writer jw = JSON_WRITER_INIT;
> > +
> > + discard_index(the_repository->index);
> > + the_repository->index->jw = &jw;
> > + if (repo_read_index(the_repository) < 0)
> > + die("index file corrupt");
> > + puts(jw.json.buf);
> > + the_repository->index->jw = NULL;
> > + jw_release(&jw);
> > + }
> >
> > if (ps_matched) {
> > int bad;
>
> I see this 'ps_matched' condition at the end, which is related to
> the '--error-unmatch' option. I added "--error-unmatch foo" to my
> command and got the appropriate error message:
>
> error: pathspec 'foo' did not match any file(s) known to git
> Did you forget to 'git add'?
>
> This was sent to stderr while the JSON was in stdout, so this should
> be appropriate to allow both options. Just pointing it out to make
> sure this is intended.--error-unmatch only makes sense when you specify pathspec (like "foo") but that does not work well with --json at all because we don't do filtering (how do we even filter in extensions?). I'll just make sure that "ls-files --json <pathspec>" is rejected. That'll cover --error-unmatch.
-- Duy