git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 5/5] scalar: document config settings

From
Derrick Stolee <stolee@gmail.com>
Date
Dec 1, 2025, 12:40 UTC
Message-ID
<e0745f6c-9de6-4c48-82ac-07db2d664a2a@gmail.com>
In-Reply-To
<aS1YCAIrafQ2iEfz@pks.im>
On 12/1/25 3:55 AM, Patrick Steinhardt wrote:
Show 36 quoted lines
> On Wed, Nov 26, 2025 at 10:18:36PM +0000, Derrick Stolee via GitGitGadget wrote:
>> diff --git a/Documentation/scalar.adoc b/Documentation/scalar.adoc
>> index f81b2832f8..b34af225e6 100644
>> --- a/Documentation/scalar.adoc
>> +++ b/Documentation/scalar.adoc
>> @@ -197,6 +197,164 @@ delete <enlistment>::
>>   	This subcommand lets you delete an existing Scalar enlistment from your
>>   	local file system, unregistering the repository.
>>   
>> +REQUIRED AND RECOMMENDED CONFIG
>> +-------------------------------
>> +
>> +As part of both `scalar clone` and `scalar register`, certain Git config
>> +values are set to optimize for large repositories or cross-platform support.
>> +These options are updated in new Git versions according to the best known
>> +advice for large repositories, and users can get the latest recommendations
>> +by running `scalar reconfigure [--all]`.
>> +
>> +This section lists justifications for the config values that are set in the
>> +latest version.
>> +
>> +am.keepCR=true::
>> +	This setting is important for cross-platform development across Windows
>> +	and non-Windows platforms and keeping carriage return (`\r`) characters
>> +	in certain workflows.
>> +
>> +commitGraph.changedPaths=true::
>> +	This setting helps the background maintenance steps that compute the
>> +	serialized commit-graph to also store changed-path Bloom filters. This
>> +	accelerates file history commands and allows users to automatically
>> +	benefit without running a foreground command.
> 
> Is this something we also want to promote to "default" eventually? The
> downside of course is that maintenance takes a bit longer, but given
> that it runs in the background anyway this shouldn't really impact our
> users all that much.

I'm not sure, as this is a significant cost to the computation time. It will impact foreground commands, as well. It increases the size of the file, too.

It's worth considering, but I don't think the answer is very simple.
Show 8 quoted lines
>> +commitGraph.generationVersion=1::
>> +	While the preferred version is 2 for performance reasons, existing users
>> +	that had version 1 by default will need special care in upgrading to
>> +	version 2. This is likely to change in the future as the upgrade story
>> +	is solidifies.
> 
> Is that still the case? We _did_ have some bugs in the upgrade path in
> the past, but I thought it got all sorted out by now?

This is very likely, but I haven't validated myself. I'd be interested to double-check and update this setting in a later series. If we update to 2, then this would be a good reason to overwrite the old config for a while.

Show 19 quoted lines
> [snip]
>> +fetch.unpackLimit=1::
>> +	This setting prevents Git from unpacking packfiles into loose objects
>> +	as they are downloaded from the server. This feature was intended as a
>> +	way to prevent performance issues from too many packfiles, but Scalar
>> +	uses background maintenance to group packfiles and cover them with a
>> +	multi-pack-index, removing this issue.
> 
> The second sentence here reads as if "fetch.unpackLimit=1" was the
> feature you are talking about, which led to some puzzlement at first.
> But what you are talking about is the _default_ unpack limit of 100.
> Maybe something like this reads better?
> 
>      This setting prevents Git from unpacking packfiles into loose objects
>      as they are downloaded from the server. The default limit of 100
>      objects was intended as a way to prevent performance issues from too
>      many packfiles, but Scalar uses background maintenance to group
>      packfiles and cover them with a multi-pack-index, removing this
>      issue.
Good catch. Thanks!
-Stolee
Previous: Patrick SteinhardtNext: Johannes Schindelin
Message 17 of 48 in “Audit and document Scalar config”
  1. 0/5 Audit and document Scalar configDerrick Stolee via GitGitGadget, Nov 26, 2025
  2. 1/5 scalar: annotate config file with "set by scalar"Derrick Stolee via GitGitGadget, Nov 26, 2025
  3. Junio C HamanoNov 26, 2025
  4. Patrick SteinhardtDec 1, 2025
  5. 2/5 scalar: use index.skipHash=true for performanceDerrick Stolee via GitGitGadget, Nov 26, 2025
  6. Junio C HamanoNov 26, 2025
  7. Derrick StoleeNov 30, 2025
  8. 3/5 scalar: remove stale config valuesDerrick Stolee via GitGitGadget, Nov 26, 2025
  9. Junio C HamanoNov 27, 2025
  10. 4/5 scalar: alphabetize and simplify configDerrick Stolee via GitGitGadget, Nov 26, 2025
  11. Patrick SteinhardtDec 1, 2025
  12. Derrick StoleeDec 1, 2025
  13. 5/5 scalar: document config settingsDerrick Stolee via GitGitGadget, Nov 26, 2025
  14. Junio C HamanoNov 27, 2025
  15. Derrick StoleeNov 30, 2025
  16. Patrick SteinhardtDec 1, 2025
  17. Derrick StoleeDec 1, 2025
  18. Johannes SchindelinDec 1, 2025
  19. 0/5 Audit and document Scalar configDerrick Stolee via GitGitGadget, Dec 1, 2025
  20. 1/5 scalar: annotate config file with "set by scalar"Derrick Stolee via GitGitGadget, Dec 1, 2025
  21. Patrick SteinhardtDec 2, 2025
  22. 2/5 scalar: use index.skipHash=true for performanceDerrick Stolee via GitGitGadget, Dec 1, 2025
  23. 3/5 scalar: remove stale config valuesDerrick Stolee via GitGitGadget, Dec 1, 2025
  24. Matthew HughesDec 1, 2025
  25. Patrick SteinhardtDec 2, 2025
  26. Matthew HughesDec 2, 2025
  27. Patrick SteinhardtDec 2, 2025
  28. Junio C HamanoDec 7, 2025
  29. Patrick SteinhardtDec 8, 2025
  30. Derrick StoleeDec 12, 2025
  31. 4/5 scalar: alphabetize and simplify configDerrick Stolee via GitGitGadget, Dec 1, 2025
  32. 5/5 scalar: document config settingsDerrick Stolee via GitGitGadget, Dec 1, 2025
  33. Matthew HughesDec 1, 2025
  34. Patrick SteinhardtDec 2, 2025
  35. Henrique FerreiroDec 11, 2025
  36. Derrick StoleeDec 12, 2025
  37. Henrique FerreiroDec 15, 2025
  38. Junio C HamanoDec 2, 2025
  39. 0/5 Audit and document Scalar configDerrick Stolee via GitGitGadget, Dec 12, 2025
  40. 1/5 scalar: annotate config file with "set by scalar"Derrick Stolee via GitGitGadget, Dec 12, 2025
  41. 2/5 scalar: use index.skipHash=true for performanceDerrick Stolee via GitGitGadget, Dec 12, 2025
  42. 3/5 scalar: remove stale config valuesDerrick Stolee via GitGitGadget, Dec 12, 2025
  43. 4/5 scalar: alphabetize and simplify configDerrick Stolee via GitGitGadget, Dec 12, 2025
  44. 5/5 scalar: document config settingsDerrick Stolee via GitGitGadget, Dec 12, 2025
  45. Henrique FerreiroDec 15, 2025
  46. Junio C HamanoDec 12, 2025
  47. Derrick StoleeDec 15, 2025
  48. Junio C HamanoDec 16, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.