From eb84b33c86280a72aaeedae1e582045528c534b2 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 9 May 2019 14:02:01 +0900 Subject: Search a branch name at a detached head --- tool/vcs.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'tool/vcs.rb') diff --git a/tool/vcs.rb b/tool/vcs.rb index 9310629089..1d8fe90a78 100644 --- a/tool/vcs.rb +++ b/tool/vcs.rb @@ -392,15 +392,16 @@ class VCS def self.get_revisions(path, srcdir = nil) gitcmd = [COMMAND] last = cmd_read_at(srcdir, [[*gitcmd, 'rev-parse', '--short=10', 'HEAD']]).rstrip - if path - log = cmd_read_at(srcdir, [[*gitcmd, 'log', '-n1', '--date=iso', path]]) - else - log = cmd_read_at(srcdir, [[*gitcmd, 'log', '-n1', '--date=iso']]) - end + log = cmd_read_at(srcdir, [[*gitcmd, 'log', '-n1', '--date=iso', *path]]) changed = log[/\Acommit (\h+)/, 1] changed = changed[0, last.size] modified = log[/^Date:\s+(.*)/, 1] 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 + branch_list.delete_if {|b| /detached at/ =~ b} + (branch = branch_list[0]).strip! unless branch_list.empty? + end branch.chomp! upstream = cmd_read_at(srcdir, [gitcmd + %W[branch --list --format=%(upstream:short) #{branch}]]) upstream.chomp! -- cgit v1.2.3