diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-05-09 14:02:01 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-05-09 14:02:01 +0900 |
commit | eb84b33c86280a72aaeedae1e582045528c534b2 (patch) | |
tree | 0e4126681d5f8caa724aaf02ac9fa4d23d71ea05 | |
parent | c06ddfee878524168e4af07443217ed2f8d0954b (diff) |
Search a branch name at a detached head
-rw-r--r-- | tool/vcs.rb | 11 |
1 files changed, 6 insertions, 5 deletions
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! |