Mercurial > hg > mercurial-crew-with-dirclash
comparison hgext/convert/subversion.py @ 4791:9f20f4b205ba
convert: svn: parse log entries as they arrive instead of deferring it
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Tue, 03 Jul 2007 14:16:54 -0700 |
parents | 2b5723a5b186 |
children | 1f10a6cccdb5 |
comparison
equal
deleted
inserted
replaced
4790:2b5723a5b186 | 4791:9f20f4b205ba |
---|---|
207 | 207 |
208 # The path is outside our tracked tree... | 208 # The path is outside our tracked tree... |
209 self.ui.debug('Ignoring %r since it is not under %r\n' % (path, module)) | 209 self.ui.debug('Ignoring %r since it is not under %r\n' % (path, module)) |
210 return None | 210 return None |
211 | 211 |
212 received = [] | 212 def parselogentry(*arg, **args): |
213 def rcvr(*arg, **args): | |
214 orig_paths, revnum, author, date, message, pool = arg | 213 orig_paths, revnum, author, date, message, pool = arg |
215 new_orig_paths = svn_paths(orig_paths) | 214 orig_paths = svn_paths(orig_paths) |
216 rcvr2(new_orig_paths, revnum, author, date, message, pool) | 215 |
217 | 216 if self.is_blacklisted(revnum): |
218 def rcvr2(orig_paths, revnum, author, date, message, pool, better_paths = None): | 217 self.ui.note('skipping blacklisted revision %d\n' % revnum) |
219 if not self.is_blacklisted(revnum): | 218 return |
220 received.append((orig_paths, revnum, author, date, message)) | 219 |
220 self.ui.note("parsing revision %d\n" % revnum) | |
221 | 221 |
222 def after_received(orig_paths, revnum, author, date, message): | |
223 self.ui.note("parsing revision %d\n" % revnum) | |
224 if orig_paths is None: | 222 if orig_paths is None: |
223 self.ui.debug('revision %d has no entries\n' % revnum) | |
225 return | 224 return |
226 | 225 |
227 if revnum in self.modulemap: | 226 if revnum in self.modulemap: |
228 new_module = self.modulemap[revnum] | 227 new_module = self.modulemap[revnum] |
229 if new_module != self.module: | 228 if new_module != self.module: |
435 self.child_rev = rev | 434 self.child_rev = rev |
436 | 435 |
437 try: | 436 try: |
438 discover_changed_paths = True | 437 discover_changed_paths = True |
439 strict_node_history = False | 438 strict_node_history = False |
440 svn.ra.get_log(self.ra, [self.module], from_revnum, to_revnum, | 439 svn.ra.get_log(self.ra, [self.module], from_revnum, to_revnum, 0, |
441 0, discover_changed_paths, strict_node_history, rcvr) | 440 discover_changed_paths, strict_node_history, |
442 for args in received: | 441 parselogentry) |
443 after_received(*args) | |
444 self.last_revnum = to_revnum | 442 self.last_revnum = to_revnum |
445 except SubversionException, (_, num): | 443 except SubversionException, (_, num): |
446 if num == svn.core.SVN_ERR_FS_NO_SUCH_REVISION: | 444 if num == svn.core.SVN_ERR_FS_NO_SUCH_REVISION: |
447 raise NoSuchRevision(branch=self, | 445 raise NoSuchRevision(branch=self, |
448 revision="Revision number %d" % to_revnum) | 446 revision="Revision number %d" % to_revnum) |