tfix: rename files affected by chain swap - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit c3615d0aa7d6add315e0c80e4d40ecd304580315 DIR parent ab5a9f3ce461040e52bf3caca376a26f5ff9d0c3 HTML Author: ThomasV <thomasv@electrum.org> Date: Thu, 20 Jul 2017 11:36:59 +0200 fix: rename files affected by chain swap Diffstat: M lib/blockchain.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) --- DIR diff --git a/lib/blockchain.py b/lib/blockchain.py t@@ -184,7 +184,6 @@ class Blockchain(util.PrintError): def swap_with_parent(self): self.print_error("swap", self.checkpoint, self.parent.checkpoint) - assert self.size() == self.get_branch_size() parent = self.parent checkpoint = self.checkpoint size = parent.get_branch_size() t@@ -201,9 +200,18 @@ class Blockchain(util.PrintError): with open(parent.path(), 'rb+') as f: f.seek((checkpoint - parent.checkpoint)*80) f.write(my_data) + # store file path + for b in blockchains.values(): + b.old_path = b.path() # swap parameters self.parent = parent.parent; parent.parent = self self.checkpoint = parent.checkpoint; parent.checkpoint = checkpoint + # move files + for b in blockchains.values(): + if b in [self, parent]: continue + if b.old_path != b.path(): + self.print_error("renaming", b.old_path, b.path()) + os.rename(b.old_path, b.path()) # update pointers blockchains[self.checkpoint] = self blockchains[parent.checkpoint] = parent