Browse Source

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>
maint
Pascal Obry 18 years ago committed by Junio C Hamano
parent
commit
aa4f31d5a3
  1. 4
      git-stash.sh

4
git-stash.sh

@ -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'
} }



Loading…
Cancel
Save