[PATCH v6 0/4] config: add support for http.<url>.* settings
From: Kyle J. McKay <hidden>
Date: 2016-06-15 22:58:13
NOTE: This patch requires the following preparatory change:
f1ff763 http.c: fix parsing of http.sslCertPasswordProtected variable
which is currently in pu.
This patch series adds support for http.<url>.* settings. The patch is
organized as a series of improvements on the functionality:
1/4 - adds basic textual matching support
2/4 - adds URL normalization before matching
3/4 - adds a test for the URL normalization function
4/4 - adds any user matching
With-Feedback-From-jh: Junio C Hamano [off-list ref]
With-Feedback-From-jk: Jeff King [off-list ref]
With-Feedback-From-es: Eric Sunshine [off-list ref]
Differences from v5:
Dropped the GIT_SSL_CERT_PASSWORD_PROTECTED patch. It's related to the
http.sslCertPasswordProtected patch, but not required as it touches different
sections of the http.c file.
1/4 - this is identical to v5's 3/5. Updated from v4's 1/4:
* Added cover comments to log message (feedback-jh)
* Updated help text (feedback-jk)
* Uppercased enum values (feedback-jk)
* Moved #ifdef enum values to end (feedback-jh)
* Renamed check_matched_len to new_match_is_shorter (feedback-jh)
* Removed 1 unnecessary cast (feedback-jk,feedback-jh)
* Based on preparatory http.sslCertPasswordProtected fix (feedback-jh)
2/4 - Updated from v5's 4/5:
* Altered append_normalized_escapes descriptive comments (feedback-es)
* Improved normalization (keep empty user name, strip port leading 0s and
resolve . and .. in path)
3/4 - Updated from v5's 5/5:
* Add more tests and adjust to improved normalization behavior
4/4 - New code
* Allow a http.<url>.* config item without a user name to match a url passed
to git that has a user name
Applicable comments from v5 cover:
To better support matching URLs that are equivalent but spelled differently, a
url_normalize function has been added. Currently this patch leaves it in
http.c as http_options_url_normalize as I am unclear whether it should go into
url.{h,c} at this time since only http.c uses it.
Since the url_normalize function's behavior is non-trivial, it is presented as
a separate patch on top of the basic http.<url>.* settings support. A new test
for it has also been included as a separate patch. I am unclear on the proper
number for this test, but have gone ahead and put it with the other http tests
since this patch series places the url_normalize function into http.c.
Kyle J. McKay (4):
config: add support for http.<url>.* settings
config: improve support for http.<url>.* settings
tests: add new test for the url_normalize function
config: allow http.<url>.* any user matching
.gitignore | 1 +
Documentation/config.txt | 19 ++
Makefile | 5 +
http.c | 675 +++++++++++++++++++++++++++++++++++++++++++++--
t/t5200-url-normalize.sh | 161 +++++++++++
test-url-normalize.c | 62 +++++
6 files changed, 906 insertions(+), 17 deletions(-)
create mode 100755 t/t5200-url-normalize.sh
create mode 100644 test-url-normalize.c
--
1.8.3