Re: [PATCH 0/5] Introduce configs for default repo format
From: brian m. carlson <hidden>
Date: 2024-08-15 21:16:48
On 2024-08-15 at 15:24:47, shejialuo wrote:
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
Attachments
- signature.asc [application/pgp-signature] 262 bytes