mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
![Nguyễn Thái Ngọc Duy](/assets/img/avatar_default.png)
Commit 76c61fb
(log: decorate HEAD with branch name under
--decorate=full, too - 2015-05-13) adds "HEAD -> branch" decoration to
show current branch vs detached HEAD. The sign of whether HEAD is
detached or not is "->" (vs ",") because the branch is always colored
by type. Color the arrow the same as HEAD to visually emphasize that
the following branch is HEAD, without paying too much attention to the
actual separators "->" or ","
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
67 lines
1.9 KiB
Bash
Executable file
67 lines
1.9 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2010 Nazri Ramliy
|
|
#
|
|
|
|
test_description='Test for "git log --decorate" colors'
|
|
|
|
. ./test-lib.sh
|
|
|
|
get_color ()
|
|
{
|
|
git config --get-color no.such.slot "$1"
|
|
}
|
|
|
|
test_expect_success setup '
|
|
git config diff.color.commit yellow &&
|
|
git config color.decorate.branch green &&
|
|
git config color.decorate.remoteBranch red &&
|
|
git config color.decorate.tag "reverse bold yellow" &&
|
|
git config color.decorate.stash magenta &&
|
|
git config color.decorate.HEAD cyan &&
|
|
|
|
c_reset=$(get_color reset) &&
|
|
|
|
c_commit=$(get_color yellow) &&
|
|
c_branch=$(get_color green) &&
|
|
c_remoteBranch=$(get_color red) &&
|
|
c_tag=$(get_color "reverse bold yellow") &&
|
|
c_stash=$(get_color magenta) &&
|
|
c_HEAD=$(get_color cyan) &&
|
|
|
|
test_commit A &&
|
|
git clone . other &&
|
|
(
|
|
cd other &&
|
|
test_commit A1
|
|
) &&
|
|
|
|
git remote add -f other ./other &&
|
|
test_commit B &&
|
|
git tag v1.0 &&
|
|
echo >>A.t &&
|
|
git stash save Changes to A.t
|
|
'
|
|
|
|
cat >expected <<EOF
|
|
${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_HEAD}HEAD ->\
|
|
${c_reset}${c_branch}master${c_reset}${c_commit},\
|
|
${c_reset}${c_tag}tag: v1.0${c_reset}${c_commit},\
|
|
${c_reset}${c_tag}tag: B${c_reset}${c_commit})${c_reset} B
|
|
${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_tag}tag: A1${c_reset}${c_commit},\
|
|
${c_reset}${c_remoteBranch}other/master${c_reset}${c_commit})${c_reset} A1
|
|
${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_stash}refs/stash${c_reset}${c_commit})${c_reset}\
|
|
On master: Changes to A.t
|
|
${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_tag}tag: A${c_reset}${c_commit})${c_reset} A
|
|
EOF
|
|
|
|
# We want log to show all, but the second parent to refs/stash is irrelevant
|
|
# to this test since it does not contain any decoration, hence --first-parent
|
|
test_expect_success 'Commit Decorations Colored Correctly' '
|
|
git log --first-parent --abbrev=10 --all --decorate --oneline --color=always |
|
|
sed "s/[0-9a-f]\{10,10\}/COMMIT_ID/" >out &&
|
|
test_cmp expected out
|
|
'
|
|
|
|
test_done
|