[MERGE][0.90][Bug 133965] PathNotChild, port mismatch with "bzr info" for bzr:// smartserver
Andrew Bennetts
andrew at canonical.com
Sun Aug 26 10:11:08 BST 2007
Andrew Bennetts wrote:
[...]
>
> Here's a more complete fix, with tests.
Argh! On further reflection, I thought of some potential problems with my
change. I couldn't easily construct a case that would break, but I think it
would probably give incorrect results in pathological cases. Certainly the
possibility that it's wrong is too much for this stage of the release cycle, and
ideally the change should be clearly correct anyway. So here's an updated
version.
The problem with my first bundle is that it's not necessarily safe to make
ConnectedTransport._split_url and _unsplit_url vary their behaviour by subclass
(as controlled by a class variable), because e.g. _reuse_for will feed in URLs
from other protocols for comparison. So instead of the DEFAULT_PORT class
variable, I declare a protocol's default port at registration time. For
example:
register_transport_proto('bzr://',
help="Fast access using the Bazaar smart server.",
default_port=4155)
As before, I've only done this for bzr:// in this branch, to minimise any
possible impact.
The intent is the same as the previous iteration: always set _port (and always
omit the “:port” part from Transport.base if the port is the default... people
don't want to see “bzr://host:4155/” anymore than they want to see
“http://host:80/”). The tests are unchanged.
> Please review!
This is still true! :)
-Andrew.
More information about the bazaar
mailing list