Re: [PATCHv2 3/3] git-add: rename -u to -a
From: Matthieu Moy <hidden>
Date: 2016-06-15 22:50:40
Michael J Gruber [off-list ref] writes:
But just how useful is our default that "git add" is a no-op?
I dont care very much myself, but if you consider "git add ." as a potentially destructive operation (discards changes that may be precious in the index), then it's good that "git add" is a no-op. Many beginners will try commands expecting to get a help message or a hint on how to use it when ran without argument (principle of least surprise) Like: $ ls file1 file2 => oh, so "ls" lists files. $ rm rm: missing operand Try `rm --help' for more information. => ok, so rm needs more operands A user typing "git add" just "to see what happens" may be disapointed to have all its files added. In particular since "git add" is silent by default, hence # let's see what happens ... $ git add $ # ok, nothing happened ... # continue hacking without noticing that a bunch of files have been added. Mercurial has taken the other way, making "hg add" add everything by default, and some users do complain: http://osdir.com/ml/version-control.mercurial.general/2007-08/msg00316.html If you change this for Git, you'll have people complaining about backward compatibility plus people complaining about least surprise :-(
- "add" should be about tracked paths by default (default pathspec "."), - "commit -a,--add <addopts>" be "add <addopts> && commit", and - "-A,--all pathspec" (default pathspec ".") be about tracked and untracked paths (whether add or commit).
Today, "git add ." adds new content in tracked files, and new files, but doesn't notice files deletions. Did I miss something, or is there no way to do that with your proposal? -- Matthieu Moy http://www-verimag.imag.fr/~moy/