Re: [PATCH 0/5] Introduce configs for default repo format
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Aug 15, 2024, 21:16 UTC
- Message-ID
- <Zr5wODo8tgGtPEIM@tapette.crustytoothpaste.net>
- In-Reply-To
- <Zr4dvybR6j6Ifyya@ArchLinux>
On 2024-08-15 at 15:24:47, shejialuo wrote:
Show 15 quoted lines
> If the user uses the following command: > > $ export GIT_DEFAULT_HASH_ENVIRONMENT=sha1 > $ git -c init.defaultObjectFormat=sha256 repo > > The repo would be initialized with the sha1 algorithm. I think we should > think carefully which precedence should be higher. I cannot give an > answer here. I am not familiar with the whole database and do not the > concern. But from my own perspective, I think the precedence of the > config should be higher than the environment variable. This is a new > feature, the people who would like to use it, they will never use > environment variable and we should ignore the functionality of the > environment variable. But for people who do not know this feature, they > will continue to use the environment variable and they will never be > influenced by the configs.
The standard behaviour we have with other environment variables is that they override the config, such as with `GIT_SSH_COMMAND` and `GIT_SSH_VARIANT`. The reason is that the config in this case is usually per-user or per-system, but it's very common to override settings on an ephemeral basis with the environment.
Think of the case where you have a language package manager that's creating a repository or fetching from one. You can override on the command line with `GIT_DEFAULT_HASH` or `GIT_SSH_VARIANT`, but you can't control the actual `git` invocation, since it's baked into the package manager. Or if you're writing a test and need all of the Git commands to use a particular setting, then it's easy to simply set the environment once and forget about it. (This is what we do at $DAYJOB to implement SHA-256 test modes for our repos: the test script sets `GIT_DEFAULT_HASH` and all of our test repos magically use the right setting.)
-- brian m. carlson (they/them or he/him) Toronto, Ontario, CA