This is the mail archive of the
mailing list for the Cygwin project.
Re: [PATCH 3/3] Add the last element of URL path to site chooser, if interesting.
On 19/11/2010 17:13, Corinna Vinschen wrote:
> On Nov 19 11:07, Christopher Faylor wrote:
>> On Sat, Nov 06, 2010 at 05:05:15PM +0000, Jon TURNEY wrote:
>>> Currently, if, for example, I manually add the site http://mirrors.kernel.org/sources.redhat.com/cygwinports/
>>> to setup's mirror list, I get two indistinguishable entries named http://mirrors.kernel.org.
>>> Furthermore, because the code to ensure the site just added is selected uses the string inside the list control
>>> to locate elements, we end up with a random one of those two indistinguishable entries selected (usually the
>>> previously existing one). This problem also prevents the selected sites being correctly saved and restored
>>> for the next setup run.
>>> So, to make the site chooser list entries unique and distinguishable, add the last element of the URL path to
>>> the site chooser, if it exists and isn't 'cygwin' (or some other alternatives used by current mirrors)
>>> (Also fix the logic for identifying protocol and site name part of the URL to find the first '/' after a '//',
>>> rather than the first '/' after a '.', to handle sitenames which aren't FQDNs correctly)
>>> 2010-11-06 Jon TURNEY <jon.turney-GrJqePx9RPPAJUdA+FbntA@public.gmane.org>
>>> * site.cc (init): If interesting, Show the last element of URL, as well
>>> as the protocol and sitename in the site chooser
>> I like this better than my idea of showing the full URL. Unless there
>> are objections (Corinna?) please check in.
> No objections. Just go ahead.
I've committed patches #1 and #2.
I think I need to take another look at this one (#3) as it looks like this
doesn't always fix all the problems I claim it doesn.
>>> It occurs to me now that the heuristic this code uses to determine if the last
>>> element of the path is 'interesting' could be broken by future official
>>> mirrors deciding to use something random. Would you take a patch to
>>> mirrors.html saying something like "mirror the cygwin directory, not it's
>>> contents, so the URL for your mirror ends 'cygwin/'"?
>> mirrors.html is a generated file but, no, I don't want to enforce a
>> naming convention for the mirrors. That seems like a headache I'd like
>> to avoid.
It occured to me that rather than relying on a heuristic that looks at the URL
to determine interestingness, the definitive test for 'is the URL
uninteresting' is 'was this URL in the mirror list?'. Unfortunately this
introduces more complexity: we don't remember where URLs came from at the
moment (manually added or chosen from the mirror list), and if the URL was on
the mirror list when it was chosen in a previous run but not anymore, we
should probably say something about how the mirror is out of date, rather than
decide it is interesting...