On Fri, Apr 03, 2020 at 03:51:03PM -0400, Jeff King wrote: > On Fri, Apr 03, 2020 at 09:38:42PM +0200, SZEDER Gábor wrote: > > > > > Can you explain more why the old behavior is a problem? > > > > Because when I do: > > > > # sometimes I forgot that refs are not good... > > $ echo HEAD | git commit-graph write --stdin-commits > > > > then I get _nothing_: neither an error, nor a commit-graph. > > OK, that makes more sense: it's an input format error, because we only > take hex oids. > > Do you care about complaining about: > > git rev-parse HEAD^{tree} | git commit-graph write --stdin-commits > > ? That's the case that's much more interesting, I think. Hm, are you trying to go in the direction where '--stdin-commits' would keep erroring out on any non-full-hex-oid, but would accept and silently ignore any hex oids that are not commits (perhaps even when there is no such object, dunno)? I think that would support the use cases you mentioned, while it would still save me when I do the 'echo <ref>' thing (somehow I regularly do that, remember doing it the day before yesterday!). I only mentioned the ^{tree} form in the commit message for the sake of completeness, i.e. to show various cases where the user would get neither error nor commit-graph. > > Or introduce 'git commit-graph write --stdin-refs'? Or teach > > '--stdin-commits' to DWIM and accept and parse refs? Though the > > question still remains what to do with refs that can't be peeled back > > to commits > > Right. I think there are two orthogonal questions: > > - whether to resolve arbitrary names to objects and how to handle such > input if we don't > > - what to do with an oid (whether given as hex or resolved from a > name) that isn't a commit-ish > > -Peff