On Wed, Feb 20, 2019 at 5:29 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Elijah Newren <newren@xxxxxxxxx> writes: > > > On Tue, Feb 19, 2019 at 11:10 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > >> > >> Junio C Hamano <gitster@xxxxxxxxx> writes: > >> > >> > I am getting the impression that to save typing, you would want to > >> > make "--index --worktree" the default (i.e. among the above, only > >> > --no-index and --no-worktree need to be spelled explicitly), but > >> > there is one glitch. Updating from the index must be spelled > >> > explicitly with "--no-index --worktree". > >> > >> And after getting reminded by Elijah, the default pair is > >> <--no-index, --worktree>. > > > > Why would you want --no-index or --no-worktree as flags? That seems > > to presume a default of modifying both the index and the working tree, > > as these names imply undoing pieces of such a default. > > By "flags" I think you mean "treat them as two orthogonal booleans"? > > It was just how I read Duy's examples (especially the "both --index > and --worktree given" example where "--source <tree>" becomes > mandatory). I do not have strong preference either way myself, but > I tend to think that treating these as two independent booleans > would be a way to make it clear that the new design departs from > what we have been doing (i.e. "--index" means "both", "--cached" > means "index only" and if we were to introduce the "cat-file -p >" > variant that would be called "--worktree-only"; in these, there is > no "two orthogonal booleans" that can be mixed---instead they come > premixed). There is indeed inconsistency in "git status" advice with my patches, where it suggests both "git restore --index" and "git rm --cached", both operate only in the index but with different option name. "--index --no-worktree" is one way to deal with this. Another way may be avoid --index in git-restore and use another name like --staging-area or something? That avoids the name clash, and we could even add --worktree and --staging-area to "git rm" / "git apply" later, deprecating (but still supporting) --index and --cached there. -- Duy