[node-]git2consul uses a branch/tag per directory structure when cloning repository to its local cache. Having such design allows for reduced complexity as the cost of increased disk space usage. Additionally, having branch-per-directory gives us the ability for git2consul to sync up branches from a single repository concurrently.
Currently, polling is done synchronously with mutex lock so that the head can be kept in sync during KV read/write. If a particular checkout consumes a lot of time, this can affect the performance of git2consul, as it is a blocking call when polling for each branch.
[node-]git2consul uses a branch/tag per directory structure when cloning repository to its local cache. Having such design allows for reduced complexity as the cost of increased disk space usage. Additionally, having branch-per-directory gives us the ability for git2consul to sync up branches from a single repository concurrently.
Currently, polling is done synchronously with mutex lock so that the head can be kept in sync during KV read/write. If a particular checkout consumes a lot of time, this can affect the performance of git2consul, as it is a blocking call when polling for each branch.