Comment 8 for bug 124859

Revision history for this message
John A Meinel (jameinel) wrote :

All of the regression/not regression actually comes from LocalTransport.__init__

It used to use a local function that would *not* call realpath because of how we did/didn't want to follow symlinks. (I believe at the time we didn't want it to follow so that 'bzr add link' would work).

I think the appropriate way to handle it is to have get_transport() not call realpath, but to have the Branch.__init__ (or BzrDir.__init__()) renormalize it's url.

The other problem, though, is that we detect a BzrDir by taking: path + '/.bzr/branch-format'

And that will work for a symlink to a directory. We may want to change the open_containing functions to stat the target, or some other extra hackery. (WT.open_containing() could certainly consider stat'ing the target file/directory/symlink).

Arguably, it could be different for WT.open_containing() (which we've defined *must* be local) and Branch.open_containing() (which may be a URL).

Just a thought.