Code

teach git-status about spaces in filenames
authorKai Ruemmler <kai.ruemmler@gmx.net>
Fri, 7 Oct 2005 23:55:00 +0000 (16:55 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 7 Oct 2005 23:55:00 +0000 (16:55 -0700)
git-status truncates filenames up to the first occurrence of a whitespace
character when displaying.  More precisely, it displays the filename up to any
field seperator defined in $IFS.

This patch fixes it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-status.sh

index 44398d760c4b212bfebbbe09c4bb11d2068ad49d..6e2783a7b4df7ec77aa4d472e84db323f65ecc83 100755 (executable)
@@ -42,7 +42,15 @@ 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 |
-       sed 's/^://' |
+       sed -e '
+               s/^:// 
+               h
+               s/^[^\t]*//
+               s/ /\\ /g
+               x
+               s/\t.*$//
+               G
+               s/\n/ /' |
        report "Updated but not checked in" "will commit"
 
        committable="$?"
@@ -51,14 +59,24 @@ else
 # Initial commit
 #'
        git-ls-files |
-       sed 's/^/o o o o A /' |
+       sed -e '
+               s/ /\\ /g
+               s/^/o o o o A /' |
        report "Updated but not checked in" "will commit"
 
        committable="$?"
 fi
 
 git-diff-files |
-sed 's/^://' |
+sed -e '
+       s/^:// 
+       h
+       s/^[^\t]*//
+       s/ /\\ /g
+       x
+       s/\t.*$//
+       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