From bf5f10faa9fd445c4dd21839aa7d73cd2acbfb85 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Bj=C3=B8rn=20Erik=20Pedersen?=
 <bjorn.erik.pedersen@gmail.com>
Date: Tue, 5 Jun 2018 10:05:20 +0300
Subject: [PATCH] Reset the "distinct error logger" on rebuilds

Fixes #4818
---
 commands/hugo.go            | 1 -
 hugolib/hugo_sites.go       | 8 ++++++++
 hugolib/hugo_sites_build.go | 1 +
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/commands/hugo.go b/commands/hugo.go
index b898a9b7..8f7860f7 100644
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -670,7 +670,6 @@ func (c *commandeer) resetAndBuildSites() (err error) {
 func (c *commandeer) initSites() error {
 	if c.hugo != nil {
 		c.hugo.Cfg = c.Cfg
-		c.hugo.Log.ResetLogCounters()
 		return nil
 	}
 
diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go
index c5c08b19..ad233f1c 100644
--- a/hugolib/hugo_sites.go
+++ b/hugolib/hugo_sites.go
@@ -280,6 +280,14 @@ func (h *HugoSites) reset() {
 	}
 }
 
+// resetLogs resets the log counters etc. Used to do a new build on the same sites.
+func (h *HugoSites) resetLogs() {
+	h.Log.ResetLogCounters()
+	for _, s := range h.Sites {
+		s.Deps.DistinctErrorLog = helpers.NewDistinctLogger(h.Log.ERROR)
+	}
+}
+
 func (h *HugoSites) createSitesFromConfig() error {
 	oldLangs, _ := h.Cfg.Get("languagesSorted").(helpers.Languages)
 
diff --git a/hugolib/hugo_sites_build.go b/hugolib/hugo_sites_build.go
index e22aabfc..7769b68d 100644
--- a/hugolib/hugo_sites_build.go
+++ b/hugolib/hugo_sites_build.go
@@ -131,6 +131,7 @@ func (h *HugoSites) initRebuild(config *BuildCfg) error {
 		s.resetBuildState()
 	}
 
+	h.resetLogs()
 	helpers.InitLoggers()
 
 	return nil
-- 
2.30.2