Index: ensure_dependencies.py |
diff --git a/ensure_dependencies.py b/ensure_dependencies.py |
index def9a7e9803cf29d8f8f70d644c599981b206163..fb34b8f07d3cdbaa175f1c3a0fd496d84a5c5334 100755 |
--- a/ensure_dependencies.py |
+++ b/ensure_dependencies.py |
@@ -197,10 +197,19 @@ def get_repo_type(repo): |
return name |
return None |
+def skip_dependency_updates_p(): |
Sebastian Noack
2015/05/07 14:06:31
I'd suggest to make it either a constant rather th
kzar
2015/05/07 14:20:01
Done.
|
+ skip_dependency_updates = os.environ.get("SKIP_DEPENDENCY_UPDATES", "").lower() |
+ return skip_dependency_updates not in ("", "0", "false") |
+ |
def ensure_repo(parentrepo, target, roots, sourcename): |
if os.path.exists(target): |
return |
+ if skip_dependency_updates_p(): |
+ logging.warning("SKIP_DEPENDENCY_UPDATES environment variable set, " |
Sebastian Noack
2015/05/07 14:06:31
Note that you don't need/should format the message
kzar
2015/05/07 14:20:01
Done.
|
+ "%s not cloned" % target) |
+ return |
+ |
parenttype = get_repo_type(parentrepo) |
type = None |
for key in roots: |
@@ -240,15 +249,21 @@ def update_repo(target, revisions): |
return |
resolved_revision = repo_types[type].get_revision_id(target, revision) |
- if not resolved_revision: |
- logging.info("Revision %s is unknown, downloading remote changes" % revision) |
- repo_types[type].pull(target) |
- resolved_revision = repo_types[type].get_revision_id(target, revision) |
- if not resolved_revision: |
- raise Exception("Failed to resolve revision %s" % revision) |
- |
current_revision = repo_types[type].get_revision_id(target) |
+ |
if resolved_revision != current_revision: |
+ if skip_dependency_updates_p(): |
+ logging.warning("SKIP_DEPENDENCY_UPDATES environment variable set, " |
+ "%s not checked out to %s" % (target, revision)) |
+ return |
+ |
+ if not resolved_revision: |
+ logging.info("Revision %s is unknown, downloading remote changes" % revision) |
+ repo_types[type].pull(target) |
+ resolved_revision = repo_types[type].get_revision_id(target, revision) |
+ if not resolved_revision: |
+ raise Exception("Failed to resolve revision %s" % revision) |
+ |
logging.info("Updating repository %s to revision %s" % (target, resolved_revision)) |
repo_types[type].update(target, resolved_revision) |