From: Jonathan Tan Date: Mon, 12 Jun 2017 19:01:40 GMT Subject: Re: [PATCH v2 00/32] repository object Message-ID: <20170612120140.3da90194@twelve2.svl.corp.google.com> In-Reply-To: <20170610060712.foqre5fscaxu3tnx@sigill.intra.peff.net> On Sat, 10 Jun 2017 02:07:12 -0400 Jeff King wrote: > I do agree that "pass just what the sub-function needs" is a good rule > of thumb. But the reason that these are globals in the first place is > that there are a ton of them, and they are used at the lowest levels of > call chains. So I have a feeling that we're always going to need some > big object to hold all that context when doing multi-repo operations in > a single process. From my experience with the codebase, it seems that most of these config variables are static (file-local). This means that the lowest levels of call chains could probably get away with storing per-repo configs in a static hashmap or associative array keyed by repo (if they cannot just pass the config around). Having said that, if it did come to the hashmap, I probably would prefer just putting the config in the repo object too. So maybe that is the way to go.