upgrading to rich-root-pack fails
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Critical
|
Aaron Bentley |
Bug Description
Trying to upgrade bzr.dev to rich-root-pack fails with:
$ bzr upgrade --rich-root-pack
starting upgrade of file://
making backup of tree history
file://
if conversion fails, you can move this directory back to .bzr
if it succeeds, you can remove this directory if you wish
starting repository conversion
bzr: ERROR: Revision {('<email address hidden>',)} not present in "<bzrlib.
Traceback from ~/.bzr.log:
Traceback (most recent call last):
File "/home/
return run_bzr(argv)
File "/home/
ret = run(*run_argv)
File "/home/
return self.run(
File "/home/
upgrade(url, format)
File "/home/
Convert(url, format)
File "/home/
self.convert()
File "/home/
self.bzrdir = converter.
File "/home/
converter.
File "/home/
self.
File "/home/
return InterRepository
File "/home/
return unbound(self, *args, **kwargs)
File "/home/
self.
File "/home/
return inter.fetch(
File "/home/
return unbound(self, *args, **kwargs)
File "/home/
pb=pb)
File "/home/
last_revision, pb)
File "/home/
self.__fetch()
File "/home/
self.
File "/home/
self.
File "/home/
self.
File "/home/
revision_id, parents, [], parent_texts)
File "/home/
left_
File "/home/
self.
File "/home/
self.
File "/home/
raise RevisionNotPres
RevisionNotPresent: Revision {('<email address hidden>',)} not present in "<bzrlib.
Changed in bzr: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Changed in bzr: | |
importance: | Medium → Critical |
Changed in bzr: | |
assignee: | nobody → abentley |
status: | Confirmed → Fix Committed |
Changed in bzr: | |
status: | Fix Committed → Fix Released |
Here is the problem:
Most of inventories in bzr.dev have root IDs "TREE_ROOT", but a branch starting from "<email address hidden>" has inventories with root ID "tree_root- 20070410133226- 3795pjcs6oz73nc z-1". This branch was merged to bzr.dev without a common ancestry in revision "<email address hidden>". But that means that one parent of "<email address hidden>" points to the versioned file "%54%52% 45%45_% 52%4f%4f% 54", the other one to "tree_root- 20070410133226- 3795pjcs6oz73nc z-1".
I'm not sure what is the right solution here: either can be repositories that don't support rich roots normalized to ROOT_ID, or can be parents of "<email address hidden>" added as ghosts, but I think this will break other things. What I'm wondering about is how this could happen, though. I see that WorkingTree4 generates a new root ID only for repositories that do support rich roots.