Re: [PATCH 0/8] Add 'ls-files --json' to dump the index in json
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jun 24, 2019, 09:33 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1906241129490.44@tvgsbejvaqbjf.bet>
- In-Reply-To
- <CACsJy8A=Vhwgv8cvs8s2f_aJ5W335s8CdqRQCDSFrdJu2j9fjw@mail.gmail.com>
Hi Duy,
On Fri, 21 Jun 2019, Duy Nguyen wrote:
Show 23 quoted lines
> On Fri, Jun 21, 2019 at 8:16 PM Johannes Schindelin > <Johannes.Schindelin@gmx.de> wrote: > > > > I think your warning in the manpage that this is for debugging is fine, > > > as it does not put us on the hook for maintaining the feature nor its > > > format forever. We might want to call it "--debug=json" or something, > > > though, in case we do want real stable json support later (though of > > > course we would be free to steal the option then, since we're making no > > > promises). > > > > Traditionally, we have not catered well to 3rd-party applications in Git, > > and this JSON format would provide a way out of that problem. > > > > So I would like *not* to lock the door on letting this feature stabilize > > organically. > > > > I'd be much more in favor of `--json[=<version>]`, with an initial version > > of 0 to indicate that it really is unstable for now. > > Considering the amount of code to output these, supporting multiple > formats would be a nightmare. I may be ok with versioning the output > so the tool know what format they need to deal with, but I'd rather > support just one version.
Once the format stabilized, I don't think it would be a huge burden to support multiple formats, if we ever had to update.
It would, however, be a huge burden on third-party applications. In effect, we could be lazy, but we would put a lot more burden on others than we saved ourselves, so that would be a bit... selfish.
> For third parties wanting to dig deep, I think libgit2 would be a much > better fit.
If we (i.e. the core Git contributors) were contributing new features/bug fixes to libgit2, that would be a good recommendation.
But we don't. We essentially ignore libgit2 (and all of their learnings) all the time.
Even worse, for years, even decades, we recommended the command-line as "the API". If you want to reverse that recommendation, I think it merits a bigger discussion than a flimsical comment buried in a thread about an experimental feature.
Ciao, Dscho