I'm using Go to build projects that are hosted on Git repositories. These git repositories have submodules in.
It seems that about every minute when polling, the Go server will wipe the submodules and re-clone them, which is causing an excessive load.
Why would it be doing this? It can surely keep syncing the existing submodule clone.
For that matter, why does it even need to checkout the submodules? The changes needed to be detected are in the parent repository, as submodules checkout are essentially commit hashes stored in commits to the parent repository.
The Go server log frequently has the following log line in (about every 2 minutes):
WARN [materialUpdateThread] MaterialUpdateService:60 [Material Update] Skipping update of material GitMaterial ... which has been in-progress since [about 1 minute before]
I'm sure that a git hook initiated build is more ideal, but I'd prefer to poll if it is as efficient as it should be.
The Go server version is: 2.4.0
The git version is 184.108.40.206