Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: gclient.py

Issue 900001: r41078 broke revinfo for .gclient files with multiple solutions (Closed)
Patch Set: Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gclient.py
diff --git a/gclient.py b/gclient.py
index d56f9a25bfbb8fa55d1c1e152f0b132117abcd0b..7a3c1442fb5d0b8dec573d4301acef852d7b45e9 100755
--- a/gclient.py
+++ b/gclient.py
@@ -847,11 +847,11 @@ class GClient(object):
new_gclient = ""
# Dictionary of { path : SCM url } to ensure no duplicate solutions
solution_names = {}
+ entries = {}
+ entries_deps_content = {}
# Run on the base solutions first.
for solution in solutions:
# Dictionary of { path : SCM url } to describe the gclient checkout
- entries = {}
- entries_deps_content = {}
name = solution["name"]
if name in solution_names:
raise gclient_utils.Error("solution %s specified more than once" % name)
@@ -871,48 +871,51 @@ class GClient(object):
deps_content = ""
entries_deps_content[name] = deps_content
- # Process the dependencies next (sort alphanumerically to ensure that
- # containing directories get populated first and for readability)
- deps = self._ParseAllDeps(entries, entries_deps_content)
- deps_to_process = deps.keys()
- deps_to_process.sort()
-
- # First pass for direct dependencies.
- for d in deps_to_process:
- if type(deps[d]) == str:
- (url, rev) = GetURLAndRev(d, deps[d])
- entries[d] = "%s@%s" % (url, rev)
-
- # Second pass for inherited deps (via the From keyword)
- for d in deps_to_process:
- if type(deps[d]) != str:
- deps_parent_url = entries[deps[d].module_name]
- if deps_parent_url.find("@") < 0:
- raise gclient_utils.Error("From %s missing revisioned url" %
- deps[d].module_name)
- content = gclient_utils.FileRead(os.path.join(
- self._root_dir,
- deps[d].module_name,
- self._options.deps_file))
- sub_deps = self._ParseSolutionDeps(deps[d].module_name, content, {})
- (url, rev) = GetURLAndRev(d, sub_deps[d])
- entries[d] = "%s@%s" % (url, rev)
-
- # Build the snapshot configuration string
- if self._options.snapshot:
- url = entries.pop(name)
- custom_deps = ",\n ".join(["\"%s\": \"%s\"" % (x, entries[x])
- for x in sorted(entries.keys())])
-
- new_gclient += DEFAULT_SNAPSHOT_SOLUTION_TEXT % {
- 'solution_name': name,
- 'solution_url': url,
- 'safesync_url' : "",
- 'solution_deps': custom_deps,
- }
- else:
- print(";\n".join(["%s: %s" % (x, entries[x])
- for x in sorted(entries.keys())]))
+ # Process the dependencies next (sort alphanumerically to ensure that
+ # containing directories get populated first and for readability)
+# DEBUG
M-A Ruel 2010/03/11 23:46:07 Remove this please.
+ #print "entries\n%s\nentries_deps_content\n%s" % (entries, entries_deps_content)
+# END DEBUG
+ deps = self._ParseAllDeps(entries, entries_deps_content)
+ deps_to_process = deps.keys()
+ deps_to_process.sort()
+
+ # First pass for direct dependencies.
+ for d in deps_to_process:
+ if type(deps[d]) == str:
+ (url, rev) = GetURLAndRev(d, deps[d])
+ entries[d] = "%s@%s" % (url, rev)
+
+ # Second pass for inherited deps (via the From keyword)
+ for d in deps_to_process:
+ if type(deps[d]) != str:
+ deps_parent_url = entries[deps[d].module_name]
+ if deps_parent_url.find("@") < 0:
+ raise gclient_utils.Error("From %s missing revisioned url" %
+ deps[d].module_name)
+ content = gclient_utils.FileRead(os.path.join(
+ self._root_dir,
+ deps[d].module_name,
+ self._options.deps_file))
+ sub_deps = self._ParseSolutionDeps(deps[d].module_name, content, {})
+ (url, rev) = GetURLAndRev(d, sub_deps[d])
+ entries[d] = "%s@%s" % (url, rev)
+
+ # Build the snapshot configuration string
+ if self._options.snapshot:
+ url = entries.pop(name)
+ custom_deps = ",\n ".join(["\"%s\": \"%s\"" % (x, entries[x])
+ for x in sorted(entries.keys())])
+
+ new_gclient += DEFAULT_SNAPSHOT_SOLUTION_TEXT % {
+ 'solution_name': name,
+ 'solution_url': url,
+ 'safesync_url' : "",
+ 'solution_deps': custom_deps,
+ }
+ else:
+ print(";\n".join(["%s: %s" % (x, entries[x])
+ for x in sorted(entries.keys())]))
# Print the snapshot configuration file
if self._options.snapshot:
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698