##// END OF EJS Templates
convert/gnuarch: fix cat-log parsing...
Edouard Gomez -
r7578:7971650b default
parent child Browse files
Show More
@@ -4,6 +4,7 b' from common import NoRepo, commandline, '
4 from mercurial.i18n import _
4 from mercurial.i18n import _
5 from mercurial import util
5 from mercurial import util
6 import os, shutil, tempfile, stat
6 import os, shutil, tempfile, stat
7 from email.Parser import Parser
7
8
8 class gnuarch_source(converter_source, commandline):
9 class gnuarch_source(converter_source, commandline):
9
10
@@ -46,6 +47,7 b' class gnuarch_source(converter_source, c'
46 self.parents = {}
47 self.parents = {}
47 self.tags = {}
48 self.tags = {}
48 self.modecache = {}
49 self.modecache = {}
50 self.catlogparser = Parser()
49
51
50 def before(self):
52 def before(self):
51 if self.execmd == 'tla':
53 if self.execmd == 'tla':
@@ -70,7 +72,7 b' class gnuarch_source(converter_source, c'
70 self.changes[rev] = self.gnuarch_rev(rev)
72 self.changes[rev] = self.gnuarch_rev(rev)
71
73
72 # Read author, date and summary
74 # Read author, date and summary
73 catlog = self.runlines0('cat-log', '-d', self.path, rev)
75 catlog = self.run0('cat-log', '-d', self.path, rev)
74 self._parsecatlog(catlog, rev)
76 self._parsecatlog(catlog, rev)
75
77
76 self.parents[rev] = child
78 self.parents[rev] = child
@@ -229,20 +231,15 b' class gnuarch_source(converter_source, c'
229 return path
231 return path
230
232
231 def _parsecatlog(self, data, rev):
233 def _parsecatlog(self, data, rev):
232 summary = []
234 try:
233 for l in data:
235 catlog = self.catlogparser.parsestr(data)
234 l = l.strip()
236 self.changes[rev].date = util.datestr(
235 if summary:
237 util.strdate(catlog['Standard-date'],
236 summary.append(l)
238 '%Y-%m-%d %H:%M:%S'))
237 elif l.startswith('Summary:'):
239 self.changes[rev].author = catlog['Creator']
238 summary.append(l[len('Summary: '):])
240 self.changes[rev].summary = catlog['Summary']
239 elif l.startswith('Standard-date:'):
241 except Exception, err:
240 date = l[len('Standard-date: '):]
242 raise util.Abort(_('could not parse cat-log of %s') % rev)
241 strdate = util.strdate(date, '%Y-%m-%d %H:%M:%S')
242 self.changes[rev].date = util.datestr(strdate)
243 elif l.startswith('Creator:'):
244 self.changes[rev].author = l[len('Creator: '):]
245 self.changes[rev].summary = '\n'.join(summary)
246
243
247 def _parsechangeset(self, data, rev):
244 def _parsechangeset(self, data, rev):
248 for l in data:
245 for l in data:
General Comments 0
You need to be logged in to leave comments. Login now