Activity log for bug #691756

Date Who What changed Old value New value Message
2010-12-17 23:38:26 Max Kanat-Alexander bug added bug
2010-12-20 01:30:36 Andrew Bennetts bzr: status New Incomplete
2010-12-20 07:26:56 Max Kanat-Alexander bzr: status Incomplete New
2010-12-20 23:10:14 Andrew Bennetts summary unversioned files underneath a directory that is now a symlink cause bzrlib.errors.PathNotChild "bzr up" fails in checkout that replaces versioned directory with unversioned symlink to out-of-tree path
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.)”
2010-12-20 23:15:34 Andrew Bennetts bzr: importance Undecided Medium
2010-12-20 23:15:34 Andrew Bennetts bzr: status New Confirmed
2010-12-20 23:16:03 Andrew Bennetts tags checkout conflicts
2012-02-25 03:31:21 Parth Malwankar tags checkout conflicts checkout conflicts symlink
2017-11-09 00:23:26 Jelmer Vernooij tags checkout conflicts symlink check-for-breezy checkout conflicts symlink