On Mon, Nov 05, 2018 at 02:00:42PM -0800, Jonathan Nieder wrote: > Hi, > > Duy Nguyen wrote: > > On Mon, Nov 5, 2018 at 2:02 AM brian m. carlson > > wrote: > > >> There are basically two approaches I can take. The first is to provide > >> each command that needs to learn about this with its own --hash > >> argument. So we'd have: > >> > >> git init --hash=sha256 > >> git show-index --hash=sha256 >> > >> The other alternative is that we provide a global option to git, which > >> is parsed by all programs, like so: > >> > >> git --hash=sha256 init > >> git --hash=sha256 show-index [...] > > I'm leaning towards "git foo --hash=". > > Can you say a little more about the semantics of the option? For > commands like "git init", I tend to agree with Duy here, since it > allows each command's manual to describe what the option means in the > context of that command. Sure. The semantics for git init are "produce a repository with this hash algorithm". The semantics for git index-pack are "the pack I want you to index uses this hash algorithm". Essentially, more generically, the semantics are "the repository or data object uses this hash algorithm". > For "git show-index", ideally Git should use the object format named > in the idx file. I agree that will be the eventual goal. It will also be what I ship in the final series, in all likelihood. I have most of pack v3 implemented, but it's not complete yet. -- brian m. carlson: Houston, Texas, US OpenPGP: https://keybase.io/bk2204