git status: skip empty directories, and add -u to show all untracked files

By default, we use --others --directory to show uninteresting
directories (to get user's attention) without their contents (to
unclutter output).  Showing empty directories do not make sense,
so pass --no-empty-directory when we do so.

Giving -u (or --untracked) disables this uncluttering to let the
user get all untracked files.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Matthias Lederhofer 2006-05-22 23:02:06 +02:00 committed by Junio C Hamano
parent 4adcea995e
commit 443f8338b9

View File

@ -3,7 +3,7 @@
# Copyright (c) 2005 Linus Torvalds # Copyright (c) 2005 Linus Torvalds
# Copyright (c) 2006 Junio C Hamano # Copyright (c) 2006 Junio C Hamano
USAGE='[-a] [-s] [-v] [--no-verify] [-m <message> | -F <logfile> | (-C|-c) <commit>) [--amend] [-e] [--author <author>] [[-i | -o] <path>...]' USAGE='[-a] [-s] [-v] [--no-verify] [-m <message> | -F <logfile> | (-C|-c) <commit>] [-u] [--amend] [-e] [--author <author>] [[-i | -o] <path>...]'
SUBDIRECTORY_OK=Yes SUBDIRECTORY_OK=Yes
. git-sh-setup . git-sh-setup
@ -134,13 +134,17 @@ run_status () {
report "Changed but not updated" \ report "Changed but not updated" \
"use git-update-index to mark for commit" "use git-update-index to mark for commit"
option=""
if test -z "$untracked_files"; then
option="--directory --no-empty-directory"
fi
if test -f "$GIT_DIR/info/exclude" if test -f "$GIT_DIR/info/exclude"
then then
git-ls-files -z --others --directory \ git-ls-files -z --others $option \
--exclude-from="$GIT_DIR/info/exclude" \ --exclude-from="$GIT_DIR/info/exclude" \
--exclude-per-directory=.gitignore --exclude-per-directory=.gitignore
else else
git-ls-files -z --others --directory \ git-ls-files -z --others $option \
--exclude-per-directory=.gitignore --exclude-per-directory=.gitignore
fi | fi |
perl -e '$/ = "\0"; perl -e '$/ = "\0";
@ -203,6 +207,7 @@ verbose=
signoff= signoff=
force_author= force_author=
only_include_assumed= only_include_assumed=
untracked_files=
while case "$#" in 0) break;; esac while case "$#" in 0) break;; esac
do do
case "$1" in case "$1" in
@ -340,6 +345,12 @@ do
verbose=t verbose=t
shift shift
;; ;;
-u|--u|--un|--unt|--untr|--untra|--untrac|--untrack|--untracke|--untracked|\
--untracked-|--untracked-f|--untracked-fi|--untracked-fil|--untracked-file|\
--untracked-files)
untracked_files=t
shift
;;
--) --)
shift shift
break break