]> scripts.mit.edu Git - wizard.git/commitdiff
Automatically remaster.
authorEdward Z. Yang <ezyang@mit.edu>
Sun, 17 Jul 2011 05:32:32 +0000 (01:32 -0400)
committerEdward Z. Yang <ezyang@mit.edu>
Sun, 17 Jul 2011 05:32:32 +0000 (01:32 -0400)
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
wizard/command/upgrade.py
wizard/deploy.py

index f963cf487301eb55d6866086e24f84670e17a417..0850994247275912d37487767d39553ec43a21c9 100644 (file)
@@ -182,7 +182,16 @@ class Upgrade(object):
             self.prod.verify()
             self.prod.verifyDatabase()
             self.prod.verifyTag(options.srv_path)
-            self.prod.verifyGit(options.srv_path)
+            try:
+                self.prod.verifyGit(options.srv_path)
+            except deploy.InconsistentWizardTagError:
+                shell.call("git", "fetch")
+                shell.call("git", "fetch", "--tags")
+                shell.call("wizard", "remaster")
+                self.prod.verifyGit(options.srv_path)
+            except deploy.HeadNotDescendantError:
+                shell.call("wizard", "remaster")
+                self.prod.verifyGit(options.srv_path)
             if not options.skip_verification:
                 self.prod.verifyConfigured()
             try:
index 651091097d407236b9f06507012c8e881da6e879..507fdf314b78eee89b6c1581213eb7b393ee7d49 100644 (file)
@@ -243,12 +243,12 @@ class Deployment(object):
             if not compare_tags(self.app_version.pristine_tag):
                 raise InconsistentPristineTagError(self.app_version.pristine_tag)
             if not compare_tags(self.app_version.wizard_tag):
-                # XXX Try remastering
+                # Causes remastering
                 raise InconsistentWizardTagError(self.app_version.wizard_tag)
             parent = repo_rev_parse(self.app_version.wizard_tag)
             merge_base = shell.safeCall("git", "merge-base", parent, "HEAD", strip=True)
             if merge_base != parent:
-                # XXX Try remastering
+                # Causes remastering
                 raise HeadNotDescendantError(self.app_version.wizard_tag)
 
     def verifyConfigured(self):