git/t/t4013
Junio C Hamano 76c61fbdba log: decorate HEAD with branch name under --decorate=full, too
The previous step to teach "log --decorate" to show "HEAD -> master"
instead of "HEAD, master" when showing the commit at the tip of the
'master' branch, when the 'master' branch is checked out, did not
work for "log --decorate=full".

The commands in the "log" family prepare commit decorations for all
refs upfront, and the actual string used in a decoration depends on
how load_ref_decorations() is called very early in the process.  By
default, "git log --decorate" stores names with common prefixes such
as "refs/heads" stripped; "git log --decorate=full" stores the full
refnames.

When the current_pointed_by_HEAD() function has to decide if "HEAD"
points at the branch a decoration describes, however, what was
passed to load_ref_decorations() to decide to strip (or keep) such a
common prefix is long lost.  This makes it impossible to reliably
tell if a decoration that stores "refs/heads/master", for example,
is the 'master' branch (under "--decorate" with prefix omitted) or
'refs/heads/master' branch (under "--decorate=full").

Keep what was passed to load_ref_decorations() in a global next to
the global variable name_decoration, and use that to decide how to
match what was read from "HEAD" and what is in a decoration.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-05-13 10:25:18 -07:00
..
diff.config_format.subjectprefix_DIFFERENT_PREFIX
diff.diff-tree_--cc_--patch-with-stat_--summary_master
diff.diff-tree_--cc_--patch-with-stat_--summary_side
diff.diff-tree_--cc_--patch-with-stat_master
diff.diff-tree_--cc_--stat_--summary_master
diff.diff-tree_--cc_--stat_--summary_side
diff.diff-tree_--cc_--stat_master
diff.diff-tree_--cc_master
diff.diff-tree_--patch-with-raw_initial
diff.diff-tree_--patch-with-stat_initial
diff.diff-tree_--pretty=oneline_--patch-with-raw_initial
diff.diff-tree_--pretty=oneline_--patch-with-stat_initial
diff.diff-tree_--pretty=oneline_--root_--patch-with-raw_initial
diff.diff-tree_--pretty=oneline_--root_--patch-with-stat_initial
diff.diff-tree_--pretty=oneline_--root_-p_initial
diff.diff-tree_--pretty=oneline_--root_initial
diff.diff-tree_--pretty=oneline_-p_initial
diff.diff-tree_--pretty=oneline_initial
diff.diff-tree_--pretty_--patch-with-raw_initial
diff.diff-tree_--pretty_--patch-with-stat_initial
diff.diff-tree_--pretty_--patch-with-stat_side
diff.diff-tree_--pretty_--root_--patch-with-raw_initial
diff.diff-tree_--pretty_--root_--patch-with-stat_initial
diff.diff-tree_--pretty_--root_--stat_--summary_initial
diff.diff-tree_--pretty_--root_--stat_initial
diff.diff-tree_--pretty_--root_--summary_-r_initial
diff.diff-tree_--pretty_--root_--summary_initial
diff.diff-tree_--pretty_--root_-p_initial
diff.diff-tree_--pretty_--root_initial
diff.diff-tree_--pretty_--stat_--summary_initial
diff.diff-tree_--pretty_--stat_initial
diff.diff-tree_--pretty_--summary_initial
diff.diff-tree_--pretty_-p_initial
diff.diff-tree_--pretty_-p_side
diff.diff-tree_--pretty_initial
diff.diff-tree_--pretty_side
diff.diff-tree_--root_--abbrev_initial
diff.diff-tree_--root_--patch-with-raw_initial
diff.diff-tree_--root_--patch-with-stat_initial
diff.diff-tree_--root_-p_initial
diff.diff-tree_--root_-r_--abbrev=4_initial
diff.diff-tree_--root_-r_--abbrev_initial
diff.diff-tree_--root_-r_initial
diff.diff-tree_--root_initial
diff.diff-tree_-c_--abbrev_master
diff.diff-tree_-c_--stat_--summary_master
diff.diff-tree_-c_--stat_--summary_side
diff.diff-tree_-c_--stat_master
diff.diff-tree_-c_master
diff.diff-tree_-p_-m_master
diff.diff-tree_-p_initial
diff.diff-tree_-p_master
diff.diff-tree_-r_--abbrev=4_initial
diff.diff-tree_-r_--abbrev_initial
diff.diff-tree_-r_initial
diff.diff-tree_initial
diff.diff-tree_master
diff.diff_--abbrev_initial..side
diff.diff_--cached
diff.diff_--cached_--_file0
diff.diff_--dirstat-by-file_initial_rearrange
diff.diff_--dirstat_initial_rearrange
diff.diff_--dirstat_master~1_master~2
diff.diff_--name-status_dir2_dir
diff.diff_--no-index_--name-status_--_dir2_dir
diff.diff_--no-index_--name-status_dir2_dir
diff.diff_--no-index_dir_dir3
diff.diff_--patch-with-raw_-r_initial..side
diff.diff_--patch-with-raw_initial..side
diff.diff_--patch-with-stat_-r_initial..side
diff.diff_--patch-with-stat_initial..side
diff.diff_--stat_initial..side
diff.diff_-r_--stat_initial..side
diff.diff_-r_initial..side
diff.diff_initial..side
diff.diff_master_master^_side
diff.format-patch_--attach_--stdout_--suffix=.diff_initial..side
diff.format-patch_--attach_--stdout_initial..master
diff.format-patch_--attach_--stdout_initial..master^
diff.format-patch_--attach_--stdout_initial..side
diff.format-patch_--inline_--stdout_--numbered-files_initial..master
diff.format-patch_--inline_--stdout_--subject-prefix=TESTCASE_initial..master
diff.format-patch_--inline_--stdout_initial..master
diff.format-patch_--inline_--stdout_initial..master^
diff.format-patch_--inline_--stdout_initial..master^^
diff.format-patch_--inline_--stdout_initial..side
diff.format-patch_--stdout_--cover-letter_-n_initial..master^
diff.format-patch_--stdout_--no-numbered_initial..master
diff.format-patch_--stdout_--numbered_initial..master
diff.format-patch_--stdout_initial..master
diff.format-patch_--stdout_initial..master^
diff.format-patch_--stdout_initial..side
diff.log_--decorate=full_--all
diff.log_--decorate_--all
diff.log_--patch-with-stat_--summary_master_--_dir_
diff.log_--patch-with-stat_master
diff.log_--patch-with-stat_master_--_dir_
diff.log_--root_--cc_--patch-with-stat_--summary_master
diff.log_--root_--patch-with-stat_--summary_master
diff.log_--root_--patch-with-stat_master
diff.log_--root_-c_--patch-with-stat_--summary_master
diff.log_--root_-p_master
diff.log_--root_master
diff.log_-GF_-p_--pickaxe-all_master
diff.log_-GF_-p_master
diff.log_-GF_master
diff.log_-SF_-p_master
diff.log_-SF_master
diff.log_-SF_master_--max-count=0
diff.log_-SF_master_--max-count=1
diff.log_-SF_master_--max-count=2
diff.log_-S_F_master
diff.log_-m_-p_--first-parent_master
diff.log_-m_-p_master
diff.log_-p_--first-parent_master
diff.log_-p_master
diff.log_master
diff.rev-list_--children_HEAD
diff.rev-list_--parents_HEAD
diff.show_--first-parent_master
diff.show_--patch-with-raw_side
diff.show_--patch-with-stat_--summary_side
diff.show_--patch-with-stat_side
diff.show_--root_initial
diff.show_--stat_--summary_side
diff.show_--stat_side
diff.show_-c_master
diff.show_-m_master
diff.show_initial
diff.show_master
diff.show_side
diff.whatchanged_--patch-with-stat_--summary_master_--_dir_
diff.whatchanged_--patch-with-stat_master
diff.whatchanged_--patch-with-stat_master_--_dir_
diff.whatchanged_--root_--cc_--patch-with-stat_--summary_master
diff.whatchanged_--root_--patch-with-stat_--summary_master
diff.whatchanged_--root_--patch-with-stat_master
diff.whatchanged_--root_-c_--patch-with-stat_--summary_master
diff.whatchanged_--root_-p_master
diff.whatchanged_--root_master
diff.whatchanged_-SF_-p_master
diff.whatchanged_-SF_master
diff.whatchanged_-p_master
diff.whatchanged_master