- self.wc = deploy.WorkingCopy(".")
- try:
- self.user_commit, self.next_commit = open(".git/WIZARD_PARENTS", "r").read().split()
- self.version = open(".git/WIZARD_UPGRADE_VERSION", "r").read()
- except IOError as e:
- if e.errno == errno.ENOENT:
- raise CannotResumeError()
- else:
- raise
+ didChdir = command.chdir_to_production()
+ self.prod = deploy.ProductionCopy(".")
+ pending_dir = open(self.prod.pending_file).read().strip()
+ if not didChdir:
+ logging.warning("Continued from a production copy; using working copy at %s", pending_dir)
+ self.temp_wc_dir = pending_dir
+ elif self.temp_wc_dir != pending_dir:
+ # prefer the original working copy, but warn that someone
+ # else someone a started an upgrade in the meantime (XXX:
+ # actually, that someone else should bug out, not clobber)
+ logging.warning("Someone else appears to have started an upgrade at %s", pending_dir)
+ def resumeState(self):
+ with util.ChangeDirectory(self.temp_wc_dir):
+ self.wc = deploy.WorkingCopy(".")
+ try:
+ self.user_commit, self.next_commit = open(".git/WIZARD_PARENTS", "r").read().split()
+ self.version = open(".git/WIZARD_UPGRADE_VERSION", "r").read()
+ except IOError as e:
+ if e.errno == errno.ENOENT:
+ raise CannotResumeError()
+ else:
+ raise