Opened 16 years ago
Last modified 12 years ago
#4763 new defect
Error when revision is empty (no nodes)
Reported by: | Martin Scharrer | Owned by: | Emmanuel Blot |
---|---|---|---|
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 16 years ago by
comment:2 follow-up: 4 Changed 16 years ago by
Could you attach a gzip/bzip2' ed repository dump image that reproduces the error.
I don't use dumpfilter at all.
Thanks.
comment:4 Changed 12 years ago by
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
48 48 @staticmethod 49 49 def get_chgset_info(tracchgset): 50 50 chgit = tracchgset.get_changes() 51 item = chgit.next()51 item = ['/', TracNode.FILE, None, '/', 1] 52 52 info = {} 53 53 try: 54 item = chgit.next() 54 55 chgit.next() 55 56 except StopIteration: 56 57 info['unique'] = True … … 103 104 nor a subdirectory should be altered in any way 104 105 """ 105 106 change_gen = self.changeset.get_changes() 106 item = change_gen.next()107 item = ['/', TracNode.FILE, None, '/', 1] 107 108 try: 109 item = change_gen.next() 108 110 change_gen.next() 109 111 except StopIteration: 110 112 pass
Ticket #4471 seems to be related. It is the same error message anyway.