The behavior of "git ls-files -t" is very misleading (see http://thread.gmane.org/gmane.comp.version-control.git/126516 and http://thread.gmane.org/gmane.comp.version-control.git/144394/focus=144397 for examples of mislead users) and badly documented, hence we point the users to superior alternatives. The feature is marked as "obsolete" but not "scheduled for removal" since it's a plumbing command, scripts might use it, and Git testsuite already uses it to test the state of the index. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> --- Documentation/git-ls-files.txt | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt index 3521637..7b86bb5 100644 --- a/Documentation/git-ls-files.txt +++ b/Documentation/git-ls-files.txt @@ -106,6 +106,11 @@ OPTIONS with `-s` or `-u` options does not make any sense. -t:: + This feature is deprecated. Authors of scripts should use + linkgit:git-status[1] `--porcelain`, and users can look at + linkgit:git-status[1] `--short` or linkgit:git-diff[1] + `--name-status` for alternatives. + Identify the file status with the following tags (followed by a space) at the start of each line: H:: cached -- 1.7.0.3.299.gb22d9.dirty --
I am no entirely happy with this patch. If all your scripted Porcelain wants to see is "what are the paths I might want to run 'git add' on?", you do not want to run diff twice (which is what "status" does); you would say "ls-files -t -m -o --exclude-standard", instead. The alternative is not even superiour in this case. Having said that, I personally don't think of any other combination of flags with which "ls-files -t" is useful. If there are parts of the documentation that are misleading, perhaps that is what your patch should be fixing instead, no? --
Why -m? I have a script that attempts to ask just this question and I don't use -m. Reading the documentation, I'm not sure why I would. In what cases would I get wrong information without -m? For the record, I also don't use -t, though using -t in this case does make sense to me, I just apparently didn't notice that bit of the documentation when writing that feature. Daniel http://www.doomstick.com --
After having tried to understand how "git ls-files -t" was supposed to work ( http://thread.gmane.org/gmane.comp.version-control.git/126516/focus=126520 ), I admit that I have no idea how to document such weird behavior. If power users want to use "git ls-files -t", let them do (I'm not saying the feature should be removed), but I don't see a point trying to help people to use it. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ --
I've always understood 'porcelain' as for users, and 'plumbing' for scripts.. so, if the option is meant for scripting (as opposed to --short), why wasn't it called --plumbing? There's obviously something I'm not getting here! -:) -Tor --
There's prior art ("git annotate --porcelain" at least). I disagree with the rationale, but --porcelain means "to be used by porcelain scripts", hence "behave like plubing". -- Matthieu Moy http://www-verimag.imag.fr/~moy/ --
