summaryrefslogtreecommitdiff
path: root/git-status.sh
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-10-15 04:56:46 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-10-18 00:41:56 (GMT)
commit71ac8356d8f64e2408e49ee8bf35d4e69cc9359e (patch)
tree848626ba441d4a15a86e450d559b718462a84453 /git-status.sh
parentcf9dfc669e9bae724286d919dec0cd30e3f592e4 (diff)
downloadgit-71ac8356d8f64e2408e49ee8bf35d4e69cc9359e.zip
git-71ac8356d8f64e2408e49ee8bf35d4e69cc9359e.tar.gz
git-71ac8356d8f64e2408e49ee8bf35d4e69cc9359e.tar.bz2
Update git-status to new git-diff-* and git-ls-files output.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-status.sh')
-rwxr-xr-xgit-status.sh67
1 files changed, 35 insertions, 32 deletions
diff --git a/git-status.sh b/git-status.sh
index fbdd377..29c2b11 100755
--- a/git-status.sh
+++ b/git-status.sh
@@ -11,7 +11,7 @@ report () {
#
"
trailer=""
- while read oldmode mode oldsha sha status name newname
+ while read status name newname
do
echo -n "$header"
header=""
@@ -41,16 +41,11 @@ git-update-index -q --unmerged --refresh || exit
if GIT_DIR="$GIT_DIR" git-rev-parse --verify HEAD >/dev/null 2>&1
then
- git-diff-index -M --cached HEAD |
+ git-diff-index -M --cached --name-status HEAD |
sed -e '
- s/^://
- h
- s/^[^ ]*//
+ s/\\/\\\\/g
s/ /\\ /g
- x
- s/ .*$//
- G
- s/\n/ /' |
+ ' |
report "Updated but not checked in" "will commit"
committable="$?"
@@ -60,40 +55,48 @@ else
#'
git-ls-files |
sed -e '
+ s/\\/\\\\/g
s/ /\\ /g
- s/^/o o o o A /' |
+ s/^/A /
+ ' |
report "Updated but not checked in" "will commit"
committable="$?"
fi
-git-diff-files |
+git-diff-files --name-status |
sed -e '
- s/^://
- h
- s/^[^ ]*//
+ s/\\/\\\\/g
s/ /\\ /g
- x
- s/ .*$//
- G
- s/\n/ /' |
+' |
report "Changed but not updated" "use git-update-index to mark for commit"
-if grep -v '^#' "$GIT_DIR/info/exclude" >/dev/null 2>&1
+
+if test -f "$GIT_DIR/info/exclude"
then
- git-ls-files --others \
- --exclude-from="$GIT_DIR/info/exclude" \
- --exclude-per-directory=.gitignore |
- sed -e '
- 1i\
-#\
-# Ignored files:\
-# (use "git add" to add to commit)\
-#
- s/^/# /
- $a\
-#'
-fi
+ git-ls-files -z --others \
+ --exclude-from="$GIT_DIR/info/exclude" \
+ --exclude-per-directory=.gitignore
+else
+ git-ls-files -z --others \
+ --exclude-per-directory=.gitignore
+fi |
+perl -e '$/ = "\0";
+ my $shown = 0;
+ while (<>) {
+ chomp;
+ s|\\|\\\\|g;
+ s|\t|\\t|g;
+ s|\n|\\n|g;
+ s/^/# /;
+ if (!$shown) {
+ print "#\n# Ignored files:\n";
+ print "# (use \"git add\" to add to commit)\n#\n";
+ $shown = 1;
+ }
+ print "$_\n";
+ }
+'
case "$committable" in
0)