summaryrefslogtreecommitdiff
path: root/processors/info_processor.py
diff options
context:
space:
mode:
authorIan Clatworthy <ian.clatworthy@internode.on.net>2008-02-20 16:40:06 +1000
committerIan Clatworthy <ian.clatworthy@internode.on.net>2008-02-20 16:40:06 +1000
commit0d96c435907241f1f5e9b9dc0ce5a9b4b42ea4a6 (patch)
tree9684d32e1929547d2890d9447152872fa48b9c53 /processors/info_processor.py
parentac5df34d1c30adfaadaa3e85cd23ddeaa233bee0 (diff)
downloadbzr-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.py25
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."""