Opened 9 years ago

# Error when revision is empty (no nodes)

Reported by: Owned by: Martin Scharrer Emmanuel Blot high RevtreePlugin critical 0.11

### Description

Revtree (I used [4847]) generates a fatal warning when a revision is included which is empty, i.e. no changes at all. This kind of revisions can not be created over the normal user interface but over the svnadmin tool using dump and load. Empty revisions appear when a revision is filtered out using svndumpfilter or the perl module SVN::Dumpfilter but is still included in order to not change the revision numbers of the following revisions in the dumpfile.

The error was something like "Iteration Error ...", so I think there is a check missing if there are no nodes, i.e. nothing to iterate over. Should be easy to fix.

I declare this as 'critical' because I can't use revtree on my valid rapository as long this isn't fixed.

Thank you in advance, Martin Scharrer

### comment:1 Changed 9 years ago by Martin Scharrer

Ticket #4471 seems to be related. It is the same error message anyway.

### comment:2 follow-up:  4 Changed 9 years ago by Emmanuel Blot

Could you attach a gzip/bzip2' ed repository dump image that reproduces the error.

I don't use dumpfilter at all.

Thanks.

### comment:3 Changed 5 years ago by bewst

I believe this duplicates #9231, #4471, #5219, and #7618

### comment:4 in reply to:  2 Changed 5 years ago by bewst

Could you attach a gzip/bzip2' ed repository dump image that reproduces the error.

I could send you one (it's for the Boost libraries), but before compression it's 3G. The bzip is 168M so far and counting...

The following patch seems to suppress the error, FWIW:

• ## revtree/model.py

 @staticmethod def get_chgset_info(tracchgset): chgit = tracchgset.get_changes() item = chgit.next() item = ['/', TracNode.FILE, None, '/', 1] info = {} try: item = chgit.next() chgit.next() except StopIteration: info['unique'] = True nor a subdirectory should be altered in any way """ change_gen = self.changeset.get_changes() item = change_gen.next() item = ['/', TracNode.FILE, None, '/', 1] try: item = change_gen.next() change_gen.next() except StopIteration: pass

### Modify Ticket

Change Properties