summaryrefslogtreecommitdiffstats
path: root/tools/scripts/git_submodule.py
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2014-03-12 14:20:37 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-20 16:09:41 +0100
commit5613f356635e810dcc1e3849011bec5764095963 (patch)
tree27edf11183da0edb6bbe85e6f6a095184720c933 /tools/scripts/git_submodule.py
parent61b2bfac4566061ee425fb5983b2b9504ccc7b80 (diff)
Improve sanity checking of the parsed DEPS submodules
This is in preparation of updating to the new stable branch 1750 (Chromium version 33.0.1750.x) Move the sanityCheckModules function to version_resolver.py and check if the parsed svn refs exist in the remote git repository. If they do not exist fall back to the git shasum we parsed from the .DEPS.git file. This patch also removes the unused parseFile function. Change-Id: Ie0c11fdd9326ee87e9dcc670c0a7c26f9a498fd5 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'tools/scripts/git_submodule.py')
-rw-r--r--tools/scripts/git_submodule.py43
1 files changed, 9 insertions, 34 deletions
diff --git a/tools/scripts/git_submodule.py b/tools/scripts/git_submodule.py
index 6d2fbd1e..a364ef65 100644
--- a/tools/scripts/git_submodule.py
+++ b/tools/scripts/git_submodule.py
@@ -85,6 +85,9 @@ class DEPSParser:
submodule = Submodule(subdir, repo)
submodule.os = os
submodule.shasum = shasum
+ if not submodule.matchesOS():
+ print '-- skipping ' + submodule.path + ' for this operating system. --'
+ continue
if not submodule.shasum:
# We need to parse the svn branch and revision number.
ref = repo
@@ -116,24 +119,6 @@ class DEPSParser:
submodules.append(submodule)
return submodules
- def sanityCheckModules(self, submodules):
- submodule_dict = {}
- for submodule in submodules:
- if not submodule.matchesOS():
- print '-- skipping ' + submodule.path + ' for this operating system. --'
- continue
- if submodule.path in submodule_dict:
- prev_module = submodule_dict[submodule.path]
- # We might have to create our own DEPS file if different platforms use different branches,
- # but for now it should be safe to select the latest revision from the requirements.
- if submodule.shasum or prev_module.revision >= submodule.revision:
- continue
- if prev_module.ref != submodule.ref:
- sys.exit('ERROR: branch mismatch for ' + submodule.path + '(' + prev_module.ref + ' vs ' + submodule.ref + ')')
- print('Duplicate submodule ' + submodule.path + '. Using latest revison ' + str(submodule.revision) + '.')
- submodule_dict[submodule.path] = submodule
- return list(submodule_dict.values())
-
def parse(self, deps_content):
exec(deps_content, self.global_scope, self.local_scope)
@@ -141,19 +126,7 @@ class DEPSParser:
submodules.extend(self.createSubmodulesFromScope(self.local_scope['deps'], 'all'))
for os_dep in self.local_scope['deps_os']:
submodules.extend(self.createSubmodulesFromScope(self.local_scope['deps_os'][os_dep], os_dep))
-
- return self.sanityCheckModules(submodules)
-
- def parseFile(self, deps_file_name):
- currentDir = os.getcwd()
- if not os.path.isfile(deps_file_name):
- return []
- deps_file = open(deps_file_name)
- deps_content = deps_file.read().decode('utf-8')
- deps_file.close()
- return self.parse(deps_content)
-
-
+ return submodules
class Submodule:
def __init__(self, path='', url='', shasum='', os=[], ref=''):
@@ -186,9 +159,11 @@ class Submodule:
error = 0
if self.ref:
# Fetch the ref we parsed from the DEPS file.
- val = subprocessCall(['git', 'fetch', 'origin', self.ref])
- if val != 0:
- sys.exit("Could not fetch branch from upstream " + self.ref)
+ error = subprocessCall(['git', 'fetch', 'origin', self.ref])
+ if error != 0:
+ print('ERROR: Could not fetch from upstream branch ' + self.ref)
+ return error
+
error = subprocessCall(['git', 'checkout', 'FETCH_HEAD']);
search_string = ''