diff options
author | Ian Clatworthy <ian.clatworthy@internode.on.net> | 2008-02-20 16:40:06 +1000 |
---|---|---|
committer | Ian Clatworthy <ian.clatworthy@internode.on.net> | 2008-02-20 16:40:06 +1000 |
commit | 0d96c435907241f1f5e9b9dc0ce5a9b4b42ea4a6 (patch) | |
tree | 9684d32e1929547d2890d9447152872fa48b9c53 /processors/info_processor.py | |
parent | ac5df34d1c30adfaadaa3e85cd23ddeaa233bee0 (diff) | |
download | bzr-fastimport-0d96c435907241f1f5e9b9dc0ce5a9b4b42ea4a6.tar.gz |
identify unmarked blobs and commits by line numbers
Diffstat (limited to 'processors/info_processor.py')
-rw-r--r-- | processors/info_processor.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/processors/info_processor.py b/processors/info_processor.py index a6958b9..b0d430e 100644 --- a/processors/info_processor.py +++ b/processors/info_processor.py @@ -67,10 +67,11 @@ class InfoProcessor(processor.ImportProcessor): self.named_branches = [] # Blob usage tracking self.blobs = {} - for usage in ['new', 'used', 'multi', 'unknown']: + for usage in ['new', 'used', 'multi', 'unknown', 'unmarked']: self.blobs[usage] = set() # Head tracking: map of commit mark to ref self.heads = {} + self.last_ids = {} def post_process(self): # Dump statistics @@ -153,7 +154,10 @@ class InfoProcessor(processor.ImportProcessor): def blob_handler(self, cmd): """Process a BlobCommand.""" self.cmd_counts[cmd.name] += 1 - self.blobs['new'].add(":" + cmd.mark) + if cmd.mark is None: + self.blobs['unmarked'].add(cmd.id) + else: + self.blobs['new'].add(cmd.id) def checkpoint_handler(self, cmd): """Process a CheckpointCommand.""" @@ -179,14 +183,21 @@ class InfoProcessor(processor.ImportProcessor): else: self.sha_blob_references = True # Track the heads - for parent in cmd.parents: + if cmd.mark is None: + last_id = self.last_ids.get(cmd.ref) + if last_id is not None: + parents = [last_id] + else: + parents = [] + else: + parents = cmd.parents + for parent in parents: try: del self.heads[parent] except KeyError: - print "hmm - didn't find parent %s" % parent - pass - self.heads[":" + cmd.mark] = cmd.ref - + note("hmm - didn't find parent %s" % parent) + self.heads[cmd.id] = cmd.ref + self.last_ids[cmd.ref] = cmd.id def reset_handler(self, cmd): """Process a ResetCommand.""" |