git-stash: do not get fooled with "color.diff = true"
When colors are set to "true" on the repository, the git log output will contain control characters to set/reset the colors, even when the output is to a pipe. This makes list_stash() fail as the downstream sed does not see what it is expecting. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
ecf4831d89
commit
aa4f31d5a3
@ -37,7 +37,7 @@ create_stash () {
|
|||||||
# state of the base commit
|
# state of the base commit
|
||||||
if b_commit=$(git rev-parse --verify HEAD)
|
if b_commit=$(git rev-parse --verify HEAD)
|
||||||
then
|
then
|
||||||
head=$(git log --abbrev-commit --pretty=oneline -n 1 HEAD)
|
head=$(git log --no-color --abbrev-commit --pretty=oneline -n 1 HEAD --)
|
||||||
else
|
else
|
||||||
die "You do not have the initial commit yet"
|
die "You do not have the initial commit yet"
|
||||||
fi
|
fi
|
||||||
@ -108,7 +108,7 @@ have_stash () {
|
|||||||
|
|
||||||
list_stash () {
|
list_stash () {
|
||||||
have_stash || return 0
|
have_stash || return 0
|
||||||
git log --pretty=oneline -g "$@" $ref_stash |
|
git log --no-color --pretty=oneline -g "$@" $ref_stash -- |
|
||||||
sed -n -e 's/^[.0-9a-f]* refs\///p'
|
sed -n -e 's/^[.0-9a-f]* refs\///p'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user