2010-12-20 23:15:15 |
Andrew Bennetts |
description |
bzr 2.2.1
I have a directory with a "lib" dir that is versioned in bzr. In my local checkout, I have done:
rm -rf lib/
ln -s lib ../lib/
So that "lib" is a symlink to another directory.
The entirety of "lib" is in .bzrignore. (That is, .bzrignore contains the line "/lib/*")
lib contains many unversioned files (and only one versioned file, called README).
When I do "bzr up" on this checkout, I get:
bzr: ERROR: bzrlib.errors.PathNotChild: Path "/var/www/html/lib/i386-linux-thread-multi" is not a child of path "/var/www/html/bugzilla-tip-sqlite"
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 912, in exception_to_return_code
return the_callable(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 1112, in run_bzr
ret = run(*run_argv)
File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 690, in run_argv_aliases
return self.run(**all_cmd_args)
File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 705, in run
return self._operation.run_simple(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/bzrlib/cleanup.py", line 134, in run_simple
return _do_with_cleanups(
File "/usr/lib/python2.4/site-packages/bzrlib/cleanup.py", line 165, in _do_with_cleanups
result = func(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/bzrlib/builtins.py", line 1440, in run
old_tip=old_tip)
File "/usr/lib/python2.4/site-packages/bzrlib/workingtree.py", line 2262, in update
return self._update_tree(old_tip, change_reporter, revision)
File "/usr/lib/python2.4/site-packages/bzrlib/mutabletree.py", line 50, in tree_write_locked
return unbound(self, *args, **kwargs)
File "/usr/lib/python2.4/site-packages/bzrlib/workingtree.py", line 2330, in _update_tree
change_reporter=change_reporter)
File "/usr/lib/python2.4/site-packages/bzrlib/merge.py", line 1968, in merge_inner
return merger.do_merge()
File "/usr/lib/python2.4/site-packages/bzrlib/merge.py", line 704, in do_merge
merge = operation.run_simple()
File "/usr/lib/python2.4/site-packages/bzrlib/cleanup.py", line 134, in run_simple
return _do_with_cleanups(
File "/usr/lib/python2.4/site-packages/bzrlib/cleanup.py", line 165, in _do_with_cleanups
result = func(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/bzrlib/merge.py", line 675, in _do_merge_to
merge.do_merge()
File "/usr/lib/python2.4/site-packages/bzrlib/merge.py", line 814, in do_merge
operation.run()
File "/usr/lib/python2.4/site-packages/bzrlib/cleanup.py", line 130, in run
return _do_with_cleanups(
File "/usr/lib/python2.4/site-packages/bzrlib/cleanup.py", line 165, in _do_with_cleanups
result = func(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/bzrlib/merge.py", line 819, in _do_merge
self._compute_transform()
File "/usr/lib/python2.4/site-packages/bzrlib/merge.py", line 865, in _compute_transform
self._finish_computing_transform()
File "/usr/lib/python2.4/site-packages/bzrlib/merge.py", line 875, in _finish_computing_transform
lambda t, c: transform.conflict_pass(t, c, self.other_tree))
File "/usr/lib/python2.4/site-packages/bzrlib/transform.py", line 2801, in resolve_conflicts
conflicts = tt.find_conflicts()
File "/usr/lib/python2.4/site-packages/bzrlib/transform.py", line 497, in find_conflicts
self._add_tree_children()
File "/usr/lib/python2.4/site-packages/bzrlib/transform.py", line 533, in _add_tree_children
list(self.iter_tree_children(parent_id))
File "/usr/lib/python2.4/site-packages/bzrlib/transform.py", line 1479, in iter_tree_children
yield self.trans_id_tree_path(childpath)
File "/usr/lib/python2.4/site-packages/bzrlib/transform.py", line 303, in trans_id_tree_path
path = self.canonical_path(path)
File "/usr/lib/python2.4/site-packages/bzrlib/transform.py", line 1415, in canonical_path
relpath = self._tree.relpath(abs)
File "/usr/lib/python2.4/site-packages/bzrlib/workingtree.py", line 447, in relpath
return osutils.relpath(self.basedir, path)
File "/usr/lib/python2.4/site-packages/bzrlib/osutils.py", line 1158, in relpath
raise errors.PathNotChild(rp, base)
PathNotChild: Path "/var/www/html/lib/i386-linux-thread-multi" is not a child of path "/var/www/html/bugzilla-tip-sqlite"
bzr 2.2.1 on python 2.4.3 (Linux-2.6.18-194.11.1.el5-i686-athlon-with-redhat-5.5-Final)
arguments: ['/usr/bin/bzr', 'up']
encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_US.UTF-8'
plugins:
bash_completion /usr/lib/python2.4/site-packages/bzrlib/plugins/bash_completion [2.2.1]
bzrtools /usr/lib/python2.4/site-packages/bzrlib/plugins/bzrtools [2.2.0]
cvsps_import /usr/lib/python2.4/site-packages/bzrlib/plugins/cvsps_import [unknown]
launchpad /usr/lib/python2.4/site-packages/bzrlib/plugins/launchpad [2.2.1]
loom /usr/lib/python2.4/site-packages/bzrlib/plugins/loom [2.2.1dev]
netrc_credential_store /usr/lib/python2.4/site-packages/bzrlib/plugins/netrc_credential_store [2.2.1]
news_merge /usr/lib/python2.4/site-packages/bzrlib/plugins/news_merge [2.2.1]
*** Bazaar has encountered an internal error. This probably indicates a
bug in Bazaar. You can help us fix it by filing a bug report at
https://bugs.launchpad.net/bzr/+filebug
including this traceback and a description of the problem. |
If you follow these steps, then on the final step you get: “bzr: ERROR: Path "/tmp/lib/lib" is not a child of path "/tmp/checkout"”:
# create a master branch with a lib directory
cd /tmp
bzr init master
cd master
mkdir lib
bzr add
bzr ci -m "Add lib/ directory."
cd ..
# Make a checkout, change lib/ to a out-of-tree-symlink
bzr co master checkout
cd checkout
rm -r lib
mkdir ../lib
ln -s ../lib/ lib
cd ..
# make a change to lib/ in master
cd master
touch lib/new-file.txt
bzr add
bzr ci -m "Add a file to lib/"
cd ..
# update the checkout
cd checkout
bzr up
(Note that with bzr 2.2.2 rather than trunk PathNotChild is a traceback; that's a separate bug.)
The reporter says: “reporting a conflict would be something that would seem reasonable to me. (Totally failing to do the update was not what I expected.)” |
|