@Eugene: looking at the code for externals-add command in commands.py the problem is obvious: line 57:
root = local_path_from_url(branch.base)
You're using root of the branch itself, but actually you want root to be root directory of the working tree, because for colocated workspace the working tree and branch located in two adjacent folders, see:
colo/ <-- working tree root and usually the place where from the command executed
colo/.bzr/
colo/.bzr/branches/ <-- shared repository with colocated branches
colo/.bzr/branches/trunk <-- the branch root or current colocated tree
So every time you pathjoin(root, somethingelse) you've got wrong path. You have to open workingtree and use its basedir as root.
@Eugene: looking at the code for externals-add command in commands.py the problem is obvious: line 57:
root = local_path_ from_url( branch. base)
You're using root of the branch itself, but actually you want root to be root directory of the working tree, because for colocated workspace the working tree and branch located in two adjacent folders, see:
colo/ <-- working tree root and usually the place where from the command executed branches/ trunk <-- the branch root or current colocated tree
colo/.bzr/
colo/.bzr/branches/ <-- shared repository with colocated branches
colo/.bzr/
So every time you pathjoin(root, somethingelse) you've got wrong path. You have to open workingtree and use its basedir as root.