bug https://bugs.launchpad.net/bzr/+bug/235055
John Arbash Meinel
john at arbash-meinel.com
Mon Jun 2 21:51:18 BST 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Tom Cato Amundsen wrote:
| After adding the patch mentioned in my first email, I now get a new
| error when doing
| bzr log http://www.solfege.org/bzr/solfege.dev. I have not created a
| new bug report in launchpad.
|
| I guess this too is related to a ghost. I have not yet tried to get
| around this. I know nothing about bzr internals and if things I change
| works, it is just plain luck.
|
| Are ghost revisions only a result of converting from arch?'
There are other ways, (bzr itself has a couple of ghosts from way back when). It
is something that we intend to support, your history is just exposing places
that haven't specifically been tested for it.
In general, we want to make the code *more* ghost aware, because it generally
improves things. (You don't have the overhead of checking if something is a
ghost when it isn't 99.9% of the time, and it allows certain kinds of
conversions, operations, etc.)
|
| I start fearing that converting the old repo was a bad idea, and that
| I should have started with a fresh archive created by bzr.
|
| Tom Cato
|
I think we don't have quite the testing of mainline ghosts that we would really
want.
The code you are encountering here, is actually a bit of cruft. Specifically, we
*used* to allow mainline revisions to be any path through the history. We have
since switched and defined mainline revisions as strictly the left-hand-history.
I'm guessing we could actually remove the code without any adverse effects.
It would actually improve performance, as we wouldn't iterate through the
mainline history unnecessarily. Otherwise I would do:
parents = self._graph[revision]
if parents:
~ if parents[0] == parent:
~ continue
~ # remove it from its prior spot, ....
Though you might run into a problem later because a node references another node
which is not in the graph...
John
=:->
| ./bzr log http://www.solfege.org/bzr/solfege.dev
| bzr: ERROR: exceptions.IndexError: tuple index out of range
|
| Traceback (most recent call last):
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/commands.py", line 846, in
| run_bzr_catch_errors
| return run_bzr(argv)
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/commands.py", line 797, in run_bzr
| ret = run(*run_argv)
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/commands.py", line 499, in
| run_argv_aliases
| return self.run(**all_cmd_args)
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/commands.py", line 807, in ignore_pipe
| result = func(*args, **kwargs)
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/builtins.py", line 1774, in run
| limit=limit)
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/log.py", line 185, in show_log
| start_revision, end_revision, search, limit)
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/log.py", line 215, in _show_log
| allow_single_merge_revision)
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/log.py", line 273, in
| calculate_view_revisions
| view_revisions = _filter_revision_range(list(view_revs_iter),
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/log.py", line 544, in
| get_view_revisions
| generate_revno=True)
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/tsort.py", line 188, in merge_sort
| generate_revno).sorted()
| File "/home/tom/tmp/bzr/bzr.dev/bzrlib/tsort.py", line 354, in __init__
| if self._graph[revision][0] == parent:
| IndexError: tuple index out of range
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkhEXUYACgkQJdeBCYSNAAPWUACgslwCqE8vU+bVAiuUwM0lLFFD
QJQAoMp0UvRsIKfMwdl2mU6OaE3Ic3Po
=GqKl
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list