Re: Fwd: git status options feature suggestion
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Oct 9, 2008, 15:12 UTC
- Message-ID
- <48EE1F58.2060707@drmicha.warpmail.net>
- In-Reply-To
- <alpine.DEB.1.00.0810091101230.22125@pacific.mpi-cbg.de.mpi-cbg.de>
Johannes Schindelin venit, vidit, dixit 09.10.2008 11:03:
Show 13 quoted lines
> Hi, > > On Thu, 9 Oct 2008, Caleb Cushing wrote: > >>> How about "git ls-files -o"? >> doh... hadn't even heard of that command. > > Which is good! As ls-files is listed as plumbing. Users should not need > to call ls-files, so I like your idea about adding --new, --untracked etc. > to "git status" (I do not agree with others that "git status" has to stay > that non-existant "git commit --dry-run"). > > Could you list exactly which options you want implemented?
Requests for stuff like that keep appearing recently (I'm to blame partially only ;) ). There are 3 issues at hand:
- people are used to "svn status [-v]" like output which can include untracked as well as tracked unmodified files; there are other valid reasons why you would want that info
- porc can't do it: git status can't show ignored files, doesn't use status letters, can't show files with specific status; git diff --name-status can't show ignored nor untracked files [In fact, the description of "git diff" says "files which you could add", which should include untracked files, but doesn't.]
- plumb uses conflicting letters: git ls-files output conflicts with git diff --name-status output
So I guess it's time for a usability effort in this area. A few questions before going about that:
- I think change of existing behaviour is unavoidable (make ls-files and diff --name-status consistent). Is that something to do now or rather before 1.7? Is porc (diff) supposed to be changed or plumb (ls-files)?
- How strong should the tie between git status and git commit be? Current git status is basically git commit -n, with the usual meaning of "-n" (such as for prune etc."), not with the current meaning of git commit -n, sigh...
A few radical suggestions might be:
1. make ls-files and diff --name-status use compatible letters
2. rename git commit -n to git commit -b (as in bypass), make git commit
-n do what's expected ("--dry-run", n as in duNNo yet)3. rename git status to git commit -n
4. make git status generate git diff --name-status like output
(3+4)'. make git status -l generate git diff --name-status like output (l as in status Letter) as an alternative to 3+4
Michael