Subtree issues
James Westby
jw+debian at jameswestby.net
Tue Mar 6 19:35:26 GMT 2007
Seeing that I could now upgrade to a --dirstate-with-subtree I thought I
would try it and try and document the new commands. The help for them is
very short, and doesn't explain what the command will actually do.
So I created a new format branch that just had one file and one commit,
and a branch in a directory inside that also had one branch and commit.
Then I cloned this twice, once for by value and once for by reference. I
then entered each branch and tried a join adding --reference for one.
For the by value branch it seemed to work ok, renaming the .bzr from the
old branch. However bzr st in that branch throws
Traceback (most recent call last):
File "/home/jw2328/devel/bzr/dirstate/bzrlib/commands.py", line 650, in run_bzr_catch_errors
return run_bzr(argv)
File "/home/jw2328/devel/bzr/dirstate/bzrlib/commands.py", line 612, in run_bzr
ret = run(*run_argv)
File "/home/jw2328/devel/bzr/dirstate/bzrlib/commands.py", line 304, in run_argv_aliases
return self.run(**all_cmd_args)
File "/home/jw2328/devel/bzr/dirstate/bzrlib/commands.py", line 622, in ignore_pipe
result = func(*args, **kwargs)
File "/home/jw2328/devel/bzr/dirstate/bzrlib/builtins.py", line 194, in run
short=short)
File "/home/jw2328/devel/bzr/dirstate/bzrlib/status.py", line 154, in show_tree_status
want_unversioned=True)
File "/home/jw2328/devel/bzr/dirstate/bzrlib/tree.py", line 91, in changes_from
want_unversioned=want_unversioned,
File "/home/jw2328/devel/bzr/dirstate/bzrlib/decorators.py", line 127, in read_locked
return unbound(self, *args, **kwargs)
File "/home/jw2328/devel/bzr/dirstate/bzrlib/tree.py", line 595, in compare
want_unversioned=want_unversioned)
File "/home/jw2328/devel/bzr/dirstate/bzrlib/delta.py", line 222, in _compare_trees
want_unversioned=want_unversioned):
File "/home/jw2328/devel/bzr/dirstate/bzrlib/workingtree_4.py", line 1971, in _iter_changes
for result in _process_entry(entry, root_dir_info):
File "/home/jw2328/devel/bzr/dirstate/bzrlib/workingtree_4.py", line 1934, in _process_entry
raise AssertionError("don't know how to compare "
AssertionError: don't know how to compare source_minikind='a', target_minikind='r'
Activating the pdb statement in the code there allows me to see
source_details = ('a', '', 0, False, '')
target_details = ('r', 'newb', 0, False, '')
So I stopped with the by value for the moment.
For the by reference the command seemed to work, reporting that the branch was
added and requiring a commit. Diff then showed that the tree reference
was added. However several things then confused me. First the sub-branch
dir and all of its contents were listed as unkown in the top level dir.
Secondly there was no indication in the top branch of any changes in the
sub branch, and pull doesn't recurse. Is this the intended behaviour?
The only page on the wiki that I could find on the subject seems a
little old, and has a discussion that these may be wanted, but the spec
doesn't actually state whether they are to be included as far as I can
see.
Thanks,
James
--
James Westby -- GPG Key ID: B577FE13 -- http://jameswestby.net/
seccure key - (3+)k7|M*edCX/.A:n*N!>|&7U.L#9E)Tu)T0>AM - secp256r1/nistp256
More information about the bazaar
mailing list