Show More
@@ -134,10 +134,16 b' class appendopener(object):' | |||||
134 | s = fp.read() |
|
134 | s = fp.read() | |
135 | fp.close() |
|
135 | fp.close() | |
136 | os.unlink(tmpname) |
|
136 | os.unlink(tmpname) | |
|
137 | del self.tmpnames[name] | |||
137 | fp = self.realopener(name, 'a') |
|
138 | fp = self.realopener(name, 'a') | |
138 | fp.write(s) |
|
139 | fp.write(s) | |
139 | fp.close() |
|
140 | fp.close() | |
140 |
|
141 | |||
|
142 | def cleanup(self): | |||
|
143 | '''delete temp files (this discards unwritten data!)''' | |||
|
144 | for tmpname in self.tmpnames.values(): | |||
|
145 | os.unlink(tmpname) | |||
|
146 | ||||
141 | # files for changelog and manifest are in different appendopeners, so |
|
147 | # files for changelog and manifest are in different appendopeners, so | |
142 | # not mixed up together. |
|
148 | # not mixed up together. | |
143 |
|
149 |
@@ -1477,6 +1477,8 b' class localrepository(object):' | |||||
1477 |
|
1477 | |||
1478 | # write changelog and manifest data to temp files so |
|
1478 | # write changelog and manifest data to temp files so | |
1479 | # concurrent readers will not see inconsistent view |
|
1479 | # concurrent readers will not see inconsistent view | |
|
1480 | cl = None | |||
|
1481 | try: | |||
1480 | cl = appendfile.appendchangelog(self.opener, self.changelog.version) |
|
1482 | cl = appendfile.appendchangelog(self.opener, self.changelog.version) | |
1481 |
|
1483 | |||
1482 | oldheads = len(cl.heads()) |
|
1484 | oldheads = len(cl.heads()) | |
@@ -1491,7 +1493,10 b' class localrepository(object):' | |||||
1491 | cnr = cor |
|
1493 | cnr = cor | |
1492 | changesets = cnr - cor |
|
1494 | changesets = cnr - cor | |
1493 |
|
1495 | |||
1494 | mf = appendfile.appendmanifest(self.opener, self.manifest.version) |
|
1496 | mf = None | |
|
1497 | try: | |||
|
1498 | mf = appendfile.appendmanifest(self.opener, | |||
|
1499 | self.manifest.version) | |||
1495 |
|
1500 | |||
1496 | # pull off the manifest group |
|
1501 | # pull off the manifest group | |
1497 | self.ui.status(_("adding manifests\n")) |
|
1502 | self.ui.status(_("adding manifests\n")) | |
@@ -1516,7 +1521,13 b' class localrepository(object):' | |||||
1516 | # write order here is important so concurrent readers will see |
|
1521 | # write order here is important so concurrent readers will see | |
1517 | # consistent view of repo |
|
1522 | # consistent view of repo | |
1518 | mf.writedata() |
|
1523 | mf.writedata() | |
|
1524 | finally: | |||
|
1525 | if mf: | |||
|
1526 | mf.cleanup() | |||
1519 | cl.writedata() |
|
1527 | cl.writedata() | |
|
1528 | finally: | |||
|
1529 | if cl: | |||
|
1530 | cl.cleanup() | |||
1520 |
|
1531 | |||
1521 | # make changelog and manifest see real files again |
|
1532 | # make changelog and manifest see real files again | |
1522 | self.changelog = changelog.changelog(self.opener, self.changelog.version) |
|
1533 | self.changelog = changelog.changelog(self.opener, self.changelog.version) |
General Comments 0
You need to be logged in to leave comments.
Login now