On Mon, Oct 8, 2018 at 6:03 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Stefan Beller <sbeller@xxxxxxxxxx> writes: > > > On Sun, Oct 7, 2018 at 1:07 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > >> > >> Junio C Hamano <gitster@xxxxxxxxx> writes: > > > >> > ... > >> > by general public and I do not have to explain the choice to the > >> > general public ;-) > >> > >> One thing that is more important than "why not 00 but 17?" to answer > >> is why a hardcoded number rather than a runtime random. It is for > >> repeatability. > > > > Let's talk about repeatability vs statistics for a second. ;-) > > Oh, I think I misled you by saying "more important". > > I didn't mean that it is more important to stick to the "use > hardcoded value" design decision than sticking to "use 17". I've > made sure that everybody would understnd choosing any arbitrary byte > value other than "17" does not make the resulting Git any better nor > worse. Yes, I totally get that. We could have chosen 42 just because. > But discussing the design decision to use hardcoded value is > "more important", as that affects the balance between the end-user > experience and debuggability, and I tried to help those who do not > know the history by giving the fact that choice was made for the > latter and not for other hidden reasons, that those who would > propose to change the system may have to keep in mind. >From an end users point of view, the auto gc kicks in at random. (Maybe it's just me, but I don't keep track of the loose object count ;-) For debuggability, we could design a system that allows for debugging, e.g. "When GIT_AUTO_GC_BIN is set, use the number as set, otherwise take a random slot". > Sorry if you mistook it as if I were saying that it is important to > keep the design to use a hardcoded byte value. That wasn't what the > message was about. I understood very well that the choice of value was arbitrary and you do not have a convincing story as to why 17 (and not say 23, but such a story is not required, as all slots are equal from a design perspective). I do challenge the decision to take a hardcoded value, though, as it yields better properties for the end users IMHO, whereas debugging this specific case does not seem to be important to me.