Modify

Opened 5 years ago

Last modified 19 months ago

#4763 new defect

Error when revision is empty (no nodes)

Reported by: martin_s Owned by: eblot
Priority: high Component: RevtreePlugin
Severity: critical Keywords:
Cc: Trac Release: 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

Attachments (0)

Change History (4)

comment:1 Changed 5 years ago by martin_s

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

comment:2 follow-up: Changed 5 years ago by eblot

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 19 months ago by bewst

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

comment:4 in reply to: ↑ 2 Changed 19 months ago by bewst

Replying to eblot:

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

     
    4848    @staticmethod 
    4949    def get_chgset_info(tracchgset): 
    5050        chgit = tracchgset.get_changes() 
    51         item = chgit.next() 
     51        item = ['/', TracNode.FILE, None, '/', 1] 
    5252        info = {} 
    5353        try: 
     54            item = chgit.next() 
    5455            chgit.next() 
    5556        except StopIteration: 
    5657            info['unique'] = True 
     
    103104           nor a subdirectory should be altered in any way 
    104105        """ 
    105106        change_gen = self.changeset.get_changes() 
    106         item = change_gen.next() 
     107        item = ['/', TracNode.FILE, None, '/', 1] 
    107108        try: 
     109            item = change_gen.next() 
    108110            change_gen.next() 
    109111        except StopIteration: 
    110112            pass 

Add Comment

Modify Ticket

Action
as new .
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.