Opened 11 years ago

Closed 11 years ago

# assertion on viewing revtree

Reported by: Owned by: anonymous Emmanuel Blot high QrCodePlugin major 0.10

### Description

I just got this backtrace on trying revtree:

Traceback (most recent call last):

File "/usr/lib/python2.5/site-packages/trac/web/main.py", line 387, in dispatch_request

dispatcher.dispatch(req)

File "/usr/lib/python2.5/site-packages/trac/web/main.py", line 237, in dispatch

resp = chosen_handler.process_request(req)

File "build/bdist.linux-i686/egg/revtree/web_ui.py", line 186, in process_request

return self._process_revtree(req)

File "build/bdist.linux-i686/egg/revtree/web_ui.py", line 314, in _process_revtree

repos.build(self.bcre, revrange=(self.oldest, youngest))

File "build/bdist.linux-i686/egg/revtree/model.py", line 309, in build

chgset.build(bcre)

File "build/bdist.linux-i686/egg/revtree/model.py", line 58, in build

raise AssertionError, "%s rev: %d" % (e, self.rev or 0)

AssertionError: Incoherent path [trunk] != [tags] rev: 2259

just set everything to the defaults said on the RevTree site.

### comment:1 Changed 11 years ago by Emmanuel Blot

This usually means that your revision 2259 contains changes for both /trunk and /tags branches.

The Revtree cannot render a tree when a single revision contains files spread over multiple branches.

Can you check the file changes for this revision?

### comment:2 Changed 11 years ago by anonymous

I am not completely sure about that revision, it was created by cvs2svn to create a tag and it shows that tag as copied and several trunk directories as removed (although it wasnt really removed). You can have a look yourself at http://bugtrack.projectiwear.org/changeset/2259 if that is of any help. When I remove tag from the branch_re regex then I get the following error:

Traceback (most recent call last):

File "/usr/lib/python2.5/site-packages/trac/web/main.py", line 387, in dispatch_request

dispatcher.dispatch(req)

File "/usr/lib/python2.5/site-packages/trac/web/main.py", line 237, in dispatch

resp = chosen_handler.process_request(req)

File "build/bdist.linux-i686/egg/revtree/web_ui.py", line 186, in process_request

return self._process_revtree(req)

File "build/bdist.linux-i686/egg/revtree/web_ui.py", line 314, in _process_revtree

repos.build(self.bcre, revrange=(self.oldest, youngest))

File "build/bdist.linux-i686/egg/revtree/model.py", line 309, in build

chgset.build(bcre)

File "build/bdist.linux-i686/egg/revtree/model.py", line 55, in build

if not self._find_simple_branch(bcre):

File "build/bdist.linux-i686/egg/revtree/model.py", line 83, in _find_simple_branch

item = change_gen.next()

StopIteration

### comment:3 Changed 11 years ago by Emmanuel Blot

Resolution: → invalid new → closed

This is the root cause: this revision contains changes in both /tags (help has been added) and /trunk (several files have been removed).

As a single revision contains modifications in several branches, no revtree can be generated with this revision.

Closing as invalid, as there is nothing the revtree can do here.

You can define the first revision to consider in the [revtree] section: revtree ignores all revisions before this revision, so you can still render new revisions as long as you comply with the "rule" (all the changes of a single revision must be commited in the same branch)

BTW: please always use {{{ }}} blocks when you quote Python traceback. Thanks

### comment:4 follow-up:  6 Changed 11 years ago by anonymous

Resolution: invalid blocker → major closed → reopened

Maybe Im the only one but that isnt obvious to me from the backtrace, maybe it should give an explaining message instead? Anyways I doubt that there really was a change in trunk as neither http://bugtrack.projectiwear.org/log/trunk/map nor e.g. http://bugtrack.projectiwear.org/changeset?old_path=trunk%2Fmap&old=2246&new_path=trunk%2Fmap&new=2260 show changes there, and the cmd issued at that time seems to be only a standard copy for creating a tag of a subdir, maybe trac in general is confused here?

### comment:5 follow-up:  7 Changed 11 years ago by anonymous

doing a

svn log -vq -r 2259 https://svn.projectiwear.org/home/svn/iwear/src/

shows that trac gets it somehow wrong...

### comment:6 in reply to:  4 ; follow-up:  8 Changed 11 years ago by Emmanuel Blot

Maybe Im the only one but that isnt obvious to me from the backtrace, maybe it should give an explaining message instead?

Yeah, maybe the error message could be improved. The error message reports the error, not why the error has been caused.

The trouble is that I'm not sure this kind of error can only occur because of a commit spread over several branches. Reporting a more detailled message when some inconsistency is detected maybe misleading as well...

Anyways I doubt that there really was a change in trunk as neither http://bugtrack.projectiwear.org/log/trunk/map

This URL leads to a directory, I'm not sure what you wanted to show here?

### comment:7 in reply to:  5 Changed 11 years ago by Emmanuel Blot

svn log -vq -r 2259 https://svn.projectiwear.org/home/svn/iwear/src/ shows that trac gets it somehow wrong...

It looks like you've bumped into the issue I got last week ;-)
Have a look at t:ticket:4900

The SVN Python wrapper do not provide enough information, so Trac cannot "guess" right.

### comment:8 in reply to:  6 Changed 11 years ago by anonymous

Anyways I doubt that there really was a change in trunk as neither http://bugtrack.projectiwear.org/log/trunk/map

This URL leads to a directory, I'm not sure what you wanted to show here?

As the next comment:4 says, there is no real remove in the directory where trac thinks it is, its rather a creation of a tag in a subdirectory which is done by (cvs2)svn internally as a copy of the whole dir and then a remove of the directories which should not be in the tag.

### comment:9 Changed 11 years ago by Emmanuel Blot

Priority: high → low
1. About the root cause of the error: as long as the SVN wrapper do not provide enough information to analyse a changeset, there's nothing Trac or the plugin can do to obtain the proper values. This kind of issue depends on an externality, this is why I decrease the priority.
1. About the error message itself: checkout the latest plugin release [2111]: the RevtreePlugin should now be more resilient: it simply ignores invalid changesets and resumes rendering the revtree graph.

### comment:10 Changed 11 years ago by Emmanuel Blot

Resolution: → fixed reopened → closed

### comment:11 Changed 7 years ago by anonymous

Component: RevtreePlugin → QrCodePlugin low → high defect → task

### Modify Ticket

Change Properties