From e247dcc141a5d1c9129b987a5f164e9df29be951 Mon Sep 17 00:00:00 2001
From: gluk256 <gluk256@users.noreply.github.com>
Date: Thu, 24 Jan 2019 15:35:10 +0400
Subject: swarm/version: commit version added (#18510)

(cherry picked from commit ad13d2d407d2f614c39af92430fda0a926da2a8a)
---
 cmd/swarm/main.go         | 8 +++++---
 swarm/network/kademlia.go | 4 ++++
 swarm/version/version.go  | 3 +++
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/cmd/swarm/main.go b/cmd/swarm/main.go
index 722dc4ff5..53888b615 100644
--- a/cmd/swarm/main.go
+++ b/cmd/swarm/main.go
@@ -66,9 +66,10 @@ OPTIONS:
 {{end}}{{end}}
 `
 
-var (
-	gitCommit string // Git SHA1 commit hash of the release (set via linker flags)
-)
+// Git SHA1 commit hash of the release (set via linker flags)
+// this variable will be assigned if corresponding parameter is passed with install, but not with test
+// e.g.: go install -ldflags "-X main.gitCommit=ed1312d01b19e04ef578946226e5d8069d5dfd5a" ./cmd/swarm
+var gitCommit string
 
 //declare a few constant error messages, useful for later error check comparisons in test
 var (
@@ -89,6 +90,7 @@ var defaultNodeConfig = node.DefaultConfig
 
 // This init function sets defaults so cmd/swarm can run alongside geth.
 func init() {
+	sv.GitCommit = gitCommit
 	defaultNodeConfig.Name = clientIdentifier
 	defaultNodeConfig.Version = sv.VersionWithCommit(gitCommit)
 	defaultNodeConfig.P2P.ListenAddr = ":30399"
diff --git a/swarm/network/kademlia.go b/swarm/network/kademlia.go
index 2c2276251..9f4245603 100644
--- a/swarm/network/kademlia.go
+++ b/swarm/network/kademlia.go
@@ -27,6 +27,7 @@ import (
 	"github.com/ethereum/go-ethereum/common"
 	"github.com/ethereum/go-ethereum/swarm/log"
 	"github.com/ethereum/go-ethereum/swarm/pot"
+	sv "github.com/ethereum/go-ethereum/swarm/version"
 )
 
 /*
@@ -552,6 +553,9 @@ func (k *Kademlia) string() string {
 	var rows []string
 
 	rows = append(rows, "=========================================================================")
+	if len(sv.GitCommit) > 0 {
+		rows = append(rows, fmt.Sprintf("commit hash: %s", sv.GitCommit))
+	}
 	rows = append(rows, fmt.Sprintf("%v KΛÐΞMLIΛ hive: queen's address: %x", time.Now().UTC().Format(time.UnixDate), k.BaseAddr()[:3]))
 	rows = append(rows, fmt.Sprintf("population: %d (%d), NeighbourhoodSize: %d, MinBinSize: %d, MaxBinSize: %d", k.conns.Size(), k.addrs.Size(), k.NeighbourhoodSize, k.MinBinSize, k.MaxBinSize))
 
diff --git a/swarm/version/version.go b/swarm/version/version.go
index d5ec31f9f..f3184627b 100644
--- a/swarm/version/version.go
+++ b/swarm/version/version.go
@@ -41,6 +41,9 @@ var VersionWithMeta = func() string {
 	return v
 }()
 
+// Git SHA1 commit hash of the release, will be set by main.init() function
+var GitCommit string
+
 // ArchiveVersion holds the textual version string used for Swarm archives.
 // e.g. "0.3.0-dea1ce05" for stable releases, or
 //      "0.3.1-unstable-21c059b6" for unstable releases
-- 
cgit v1.2.3