Re: [PATCH v4 01/11] add fetch-pack --diag-url tests for some corner cases
From: Mike Hommey <hidden>
Date: 2016-06-16 02:19:12
On Wed, May 04, 2016 at 07:48:30AM +0900, Mike Hommey wrote:
On Tue, May 03, 2016 at 09:07:41AM -0700, Junio C Hamano wrote:quoted
Mike Hommey [off-list ref] writes:quoted
t5603-clone-dirname uses url patterns that are not tested with fetch-pack --diag-url, and it would be useful if they were. Interestingly, some of those tests, involving both a port and a user:password pair, don't currently pass. Note that even if a user:password pair is actually not supported by git, the values used could be valid user names (user names can actually contain colons and at signs), and are still worth testing the url parser for.I am not sure about the last part of this (and the tests in the patch for them). When you are constrained by the Common Internet Scheme Syntax, i.e. <scheme>://<user>:<password>@<host>:<port>/<url-path> you cannot have arbitrary characters in these parts; within the user and password field, any ":", "@", or "/" must be encoded. Which maens that for the purpose of the parser you are modifying, you can rely on these three special characters to parse things out (decoding after the code determines which part is user and which part is password is a separate issue).t5603-clone-dirname contains a test for e.g. ssh://user:passw@rd@host:1234/ That's the basis for these additions. Whether that should work or not is besides what I was interested in, which was to have a single test file to run to test my changes, instead of several. Strictly speaking, this patch is not necessary, because it only covers things that I found while breaking other tests. So, there are multiple possible ways forward here: - Completely remove this patch for v5 of the series. - Remove the user:passw@rd cases because of the @. - Remove the user:password cases because we do nothing with the password anyways. - A combination of both of the above.
Any opinions on this? Mike