# HG changeset patch # User Edouard Gomez # Date 2009-01-04 01:36:48 # Node ID 8c5afb3cdb67d90e48766be8c35faf3127cc13d0 # Parent a8db971dc258514138d90bce13547582f5de087a convert/gnuarch: robustify cat-log retrieval GNU Arch used to scale very poorly when revision number was increasing. This was mostly caused by the huge amount of cat-log it has to scan/read through to keep track of all patches that were merged in a given revision. In order to improve things, cat-log prunning was a common admin task that would accelerate cat-log parsing at the expense of unreachabe locally stored cat-logs. However, these missing cat-logs are still available in the archive. So try to get them from the archive as a fallback solution. diff --git a/hgext/convert/gnuarch.py b/hgext/convert/gnuarch.py --- a/hgext/convert/gnuarch.py +++ b/hgext/convert/gnuarch.py @@ -73,7 +73,9 @@ class gnuarch_source(converter_source, c self.changes[rev] = self.gnuarch_rev(rev) # Read author, date and summary - catlog = self.run0('cat-log', '-d', self.path, rev) + catlog, status = self.run('cat-log', '-d', self.path, rev) + if status: + catlog = self.run0('cat-archive-log', rev) self._parsecatlog(catlog, rev) self.parents[rev] = child