From 1e9057b54a53e7bc1fa3d0e3eaef1dd33707d044 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Fri, 31 May 2019 02:30:29 +0900 Subject: Prefer the current branch or tag name --- tool/vcs.rb | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'tool/vcs.rb') diff --git a/tool/vcs.rb b/tool/vcs.rb index 8379b3b548..56924ff8bc 100644 --- a/tool/vcs.rb +++ b/tool/vcs.rb @@ -408,8 +408,21 @@ class VCS branch = cmd_read_at(srcdir, [gitcmd + %W[symbolic-ref --short HEAD]]) if branch.empty? branch_list = cmd_read_at(srcdir, [gitcmd + %W[branch --list --contains HEAD]]).lines.to_a - branch_list.delete_if {|b| /detached at/ =~ b} - (branch = branch_list[0]).strip! unless branch_list.empty? + branch, = branch_list.grep(/\A\*/) + case branch + when /\A\* *\(\S+ detached at (.*)\)\Z/ + branch = $1 + branch = nil if last.start_with?(branch) + when /\A\* (\S+)\Z/ + branch = $1 + else + branch = nil + end + unless branch + branch_list.each {|b| b.strip!} + branch_list.delete_if {|b| / / =~ b} + branch = branch_list.min_by(&:length) || "" + end end branch.chomp! branch = ":detached:" if branch.empty? -- cgit v1.2.3