]> scripts.mit.edu Git - wizard.git/blobdiff - wizard/command/upgrade.py
Fix pylint errors.
[wizard.git] / wizard / command / upgrade.py
index cd7b1041fad818fc3476cb64e362e623d04b08a8..06be3db1eb23548d64f0d57fce5d5042f364f502 100644 (file)
@@ -27,6 +27,7 @@ def main(argv, baton):
     try: # global try-finally for cleaning up /dev/shm if it's being used
         if options.continue_:
             temp_wc_dir = os.getcwd()
+            wc = deploy.WorkingCopy(".")
             user_commit, next_commit = open(".git/WIZARD_PARENTS", "r").read().split()
             repo = open(".git/WIZARD_REPO", "r").read()
             version = open(".git/WIZARD_UPGRADE_VERSION", "r").read()
@@ -36,14 +37,14 @@ def main(argv, baton):
                 command.setup_file_logger(options.log_file, options.debug)
             logging.info("Continuing upgrade...")
             util.chdir(sh.eval("git", "config", "remote.origin.url"))
-            d = deploy.Deployment(".")
+            d = deploy.ProductionCopy(".")
             try:
                 sh.call("git", "status")
                 raise LocalChangesError()
             except shell.CallError:
                 pass
         else:
-            d = deploy.Deployment(".")
+            d = deploy.ProductionCopy(".")
             if os.path.exists(".scripts/blacklisted"):
                 reason = open(".scripts/blacklisted").read()
                 print "-1 " + reason
@@ -76,6 +77,7 @@ def main(argv, baton):
                 use_shm = os.path.exists("/dev/shm")
             temp_dir, temp_wc_dir = perform_tmp_clone(sh, use_shm)
             with util.ChangeDirectory(temp_wc_dir):
+                wc = deploy.WorkingCopy(".")
                 sh.call("git", "remote", "add", "scripts", repo)
                 sh.call("git", "fetch", "-q", "scripts")
                 user_commit, next_commit = calculate_parents(sh, version)
@@ -87,7 +89,7 @@ def main(argv, baton):
                 open(".git/WIZARD_SIZE", "w").write(str(scripts.get_disk_usage()))
                 if options.log_file:
                     open(".git/WIZARD_LOG_FILE", "w").write(options.log_file)
-                perform_merge(sh, repo, d, version, use_shm, kib_limit and kib_limit - kib_usage or None)
+                perform_merge(sh, repo, d, wc, version, use_shm, kib_limit and kib_limit - kib_usage or None)
         # variables: version, user_commit, next_commit, temp_wc_dir
         with util.ChangeDirectory(temp_wc_dir):
             try:
@@ -108,7 +110,8 @@ def main(argv, baton):
             sh.call("git", "reset", "-q", "--hard", final_commit)
             # This is a quick sanity check to make sure we didn't completely
             # mess up the merge
-            d.verifyVersion()
+            wc.invalidateCache()
+            wc.verifyVersion()
         # Till now, all of our operations were in a tmp sandbox.
         if options.dry_run:
             logging.info("Dry run, bailing.  See results at %s" % temp_wc_dir)
@@ -199,7 +202,7 @@ def perform_tmp_clone(sh, use_shm):
     sh.call("git", "clone", "-q", "--shared", ".", temp_wc_dir)
     return temp_dir, temp_wc_dir
 
-def perform_merge(sh, repo, d, version, use_shm, kib_avail):
+def perform_merge(sh, repo, d, wc, version, use_shm, kib_avail):
     # Note: avail_quota == None means unlimited
     # naive merge algorithm:
     # sh.call("git", "merge", "-m", message, "scripts/master")
@@ -207,8 +210,8 @@ def perform_merge(sh, repo, d, version, use_shm, kib_avail):
     def make_virtual_commit(tag, parents = []):
         """WARNING: Changes state of Git repository"""
         sh.call("git", "checkout", "-q", tag, "--")
-        d.parametrize(".")
-        for file in d.application.parametrized_files:
+        wc.parametrize(d)
+        for file in wc.application.parametrized_files:
             try:
                 sh.call("git", "add", "--", file)
             except shell.CallError:
@@ -220,12 +223,12 @@ def perform_merge(sh, repo, d, version, use_shm, kib_avail):
         sh.call("git", "reset", "--hard")
         return virtual_commit
     user_tree = sh.eval("git", "rev-parse", "HEAD^{tree}")
-    base_virtual_commit = make_virtual_commit(d.app_version.scripts_tag)
+    base_virtual_commit = make_virtual_commit(wc.app_version.scripts_tag)
     next_virtual_commit = make_virtual_commit(version, [base_virtual_commit])
     user_virtual_commit = sh.eval("git", "commit-tree", user_tree,
             "-p", base_virtual_commit, input="", log=True)
     sh.call("git", "checkout", user_virtual_commit, "--")
-    d.application.prepareMerge(os.getcwd())
+    wc.prepareMerge()
     sh.call("git", "commit", "--amend", "-a", "-m", "amendment")
     try:
         sh.call("git", "merge", next_virtual_commit)
@@ -235,7 +238,7 @@ def perform_merge(sh, repo, d, version, use_shm, kib_avail):
         # Run the application's specific merge resolution algorithms
         # and see if we can salvage it
         curdir = os.getcwd()
-        if d.application.resolveConflicts(curdir):
+        if wc.resolveConflicts():
             logging.info("Resolved conflicts with application specific knowledge")
             sh.call("git", "commit", "-a", "-m", "merge")
             return