import optparse
import sys
+import distutils.version
import os
import shutil
import logging.handlers
d.verifyVersion()
repo = d.application.repository(options.srv_path)
version = calculate_newest_version(sh, repo)
- if version == d.app_version.scripts_tag:
+ if version == d.app_version.scripts_tag and not options.force:
raise AlreadyUpgraded
if not options.dry_run:
perform_pre_commit(sh)
# - merge could fail (race); that's /really/ dangerous.
sh.call("git", "pull", temp_wc_dir, "master")
# run update script
- d.application.upgrade(options)
+ version_obj = distutils.version.LooseVersion(version.partition('-')[2])
+ d.application.upgrade(version_obj, options)
# XXX: frob .htaccess to make site accessible
# XXX: - check if .htaccess changed, first. Upgrade
# process might have frobbed it. Don't be
parser.add_option("--continue", dest="continue_", action="store_true",
default=False, help="Continues an upgrade that has had its merge manually "
"resolved using the current working directory as the resolved copy.")
+ parser.add_option("--force", dest="force", action="store_true",
+ default=False, help="Force running upgrade even if it's already at latest version.")
baton.push(parser, "srv_path")
options, args = parser.parse_all(argv)
if len(args) > 1: