Mercurial > hg
comparison hgext/convert/subversion.py @ 4811:f7c8222920ee
convert: svn: defer get_log parsing until after get_log completes.
According to the documentation, it is not safe to perform any other
operation on the ra object until get_log completes.
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Thu, 05 Jul 2007 12:18:01 -0700 |
parents | c2d529f288a1 |
children | 1fcdf2fe3d7c |
comparison
equal
deleted
inserted
replaced
4810:c2d529f288a1 | 4811:f7c8222920ee |
---|---|
199 return relative | 199 return relative |
200 | 200 |
201 # The path is outside our tracked tree... | 201 # The path is outside our tracked tree... |
202 self.ui.debug('Ignoring %r since it is not under %r\n' % (path, module)) | 202 self.ui.debug('Ignoring %r since it is not under %r\n' % (path, module)) |
203 return None | 203 return None |
204 | |
205 received = [] | |
206 # svn.ra.get_log requires no other calls to the ra until it completes, | |
207 # so we just collect the log entries and parse them afterwards | |
208 def receivelog(*arg, **args): | |
209 received.append(arg) | |
204 | 210 |
205 self.child_cset = None | 211 self.child_cset = None |
206 def parselogentry(*arg, **args): | 212 def parselogentry(*arg, **args): |
207 orig_paths, revnum, author, date, message, pool = arg | 213 orig_paths, revnum, author, date, message, pool = arg |
208 orig_paths = svn_paths(orig_paths) | 214 orig_paths = svn_paths(orig_paths) |
444 try: | 450 try: |
445 discover_changed_paths = True | 451 discover_changed_paths = True |
446 strict_node_history = False | 452 strict_node_history = False |
447 svn.ra.get_log(self.ra, [self.module], from_revnum, to_revnum, 0, | 453 svn.ra.get_log(self.ra, [self.module], from_revnum, to_revnum, 0, |
448 discover_changed_paths, strict_node_history, | 454 discover_changed_paths, strict_node_history, |
449 parselogentry) | 455 receivelog) |
456 for entry in received: | |
457 parselogentry(*entry) | |
450 self.last_revnum = to_revnum | 458 self.last_revnum = to_revnum |
451 except SubversionException, (_, num): | 459 except SubversionException, (_, num): |
452 if num == svn.core.SVN_ERR_FS_NO_SUCH_REVISION: | 460 if num == svn.core.SVN_ERR_FS_NO_SUCH_REVISION: |
453 raise NoSuchRevision(branch=self, | 461 raise NoSuchRevision(branch=self, |
454 revision="Revision number %d" % to_revnum) | 462 revision="Revision number %d" % to_revnum) |