From f3478f2899e80d59d15956ae408fab93cf26254d Mon Sep 17 00:00:00 2001 From: "Aleksey @soar Smyrnov" Date: Thu, 8 Aug 2019 12:05:35 +0300 Subject: [PATCH] internal/build: fix commit extraction for detached head repo (#18315) * Fix commit extraction * Comments for commit extraction Requested in https://github.com/ethereum/go-ethereum/pull/18315 --- internal/build/env.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/build/env.go b/internal/build/env.go index 95f00035dc..a3017182e3 100644 --- a/internal/build/env.go +++ b/internal/build/env.go @@ -20,6 +20,7 @@ import ( "flag" "fmt" "os" + "regexp" "strconv" "strings" "time" @@ -99,6 +100,13 @@ func LocalEnv() Environment { if fields := strings.Fields(head); len(fields) == 2 { head = fields[1] } else { + // In this case we are in "detached head" state + // see: https://git-scm.com/docs/git-checkout#_detached_head + // Additional check required to verify, that file contains commit hash + commitRe, _ := regexp.Compile("^([0-9a-f]{40})$") + if commit := commitRe.FindString(head); commit != "" && env.Commit == "" { + env.Commit = commit + } return env } if env.Commit == "" {