Re: [PATCH 0/8] fix git-config with duplicate variable entries
flat view
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:55:22
Jeff King [off-list ref] writes:
On Tue, Oct 23, 2012 at 04:13:44PM +0200, Ævar Arnfjörð Bjarmason wrote:quoted
quoted
It fails a few tests in t1300, but it looks like those tests are testing for the behavior we have identified as wrong, and should be fixed.I think this patch looks good.Thanks. It had a few minor flaws (like a memory leak). I fixed those, updated the tests, and split it out into a few more readable commits. In the process, I managed to uncover and fix a few other memory leaks in the area. I think this version is much more readable, and writing the rationale for patch 7 convinced me that it's the right thing to do. Another round of review would be appreciated. [1/8]: t1300: style updates [2/8]: t1300: remove redundant test [3/8]: t1300: test "git config --get-all" more thoroughly [4/8]: git-config: remove memory leak of key regexp [5/8]: git-config: fix regexp memory leaks on error conditions [6/8]: git-config: collect values instead of immediately printing [7/8]: git-config: do not complain about duplicate entries [8/8]: git-config: use git_config_with_options For those just joining us, the interesting bit is patch 7, which fixes some inconsistencies between the "git-config" tool and how the internal config callbacks work.
The way for the Porcelain scripts to mimick the internal "last one wins" has been to grab values out of --get-all and do the "last one wins" themselves, and I agree that a mode that frees them from having to worry about it is a good *addition*. I would even say that if we were designing "git config" plumbing without existing users, it would be the only sensible behaviour for "--get". But "git config --get" users have been promised to get errors on duplicate values so far, so I have to say this needs to come with a big red sign about API breakage. I would feel safer to introduce --get-one or something now, and worry about migration as a separate step.