More re-insert fixes.
diff --git a/infocalypse/insertingbundles.py b/infocalypse/insertingbundles.py
--- a/infocalypse/insertingbundles.py
+++ b/infocalypse/insertingbundles.py
@@ -80,7 +80,7 @@ class InsertingBundles(RequestQueueState
for edge in self.new_edges:
text += "%i:%s\n" % (graph.get_length(edge), str(edge))
if len(text) > 0:
- self.parent.ctx.ui_.status('Adding new bundles:\n' + text)
+ self.parent.ctx.ui_.status('Inserting bundles:\n' + text)
#print "--- Updated Graph ---"
#print graph_to_string(graph)
@@ -108,7 +108,6 @@ class InsertingBundles(RequestQueueState
for edge in self.required_edges:
# Will be re-added when the required metadata arrives.
self.new_edges.remove((edge[0], edge[1], 1))
- print "REQUIRED_EDGES:", self.required_edges, self.new_edges
# REDFLAG: no longer needed?
def leave(self, dummy):
@@ -167,7 +166,7 @@ class InsertingBundles(RequestQueueState
else:
# Dunno what's going on.
raise
-
+
return request
def request_done(self, client, msg):
@@ -203,9 +202,19 @@ class InsertingBundles(RequestQueueState
# Hmmm... also no file names.
assert len(chk0_fields) == len(chk1_fields)
chk1 = ','.join(chk1_fields[:-1] + chk0_fields[-1:])
- graph.set_chk(edge[:2], edge[2],
- graph.get_length(edge),
- chk1)
+ if self.parent.ctx.get('REINSERT', 0) < 1:
+ graph.set_chk(edge[:2], edge[2],
+ graph.get_length(edge),
+ chk1)
+ else:
+ if chk1 != graph.get_chk(edge):
+ self.parent.ctx.ui_.status("Bad CHK: %s %s\n" %
+ (str(edge), chk1))
+ self.parent.ctx.ui_.warn("CHK for reinserted edge doesn't match!\n"
+ + "Maybe the repository was inserted with a "
+ + "different version of hg?\n")
+ self.parent.transition(FAILING)
+
else:
# REDFLAG: retrying?
# REDFLAG: More failure information, FAILING state?