| Index: gclient.py
|
| diff --git a/gclient.py b/gclient.py
|
| index c585385750962847f95dea6fa045f4b8928f7e74..ef893d6d450dbd1b269f491c486d95efca1d3c73 100755
|
| --- a/gclient.py
|
| +++ b/gclient.py
|
| @@ -773,16 +773,13 @@ class GClient(object):
|
|
|
| def PrintRevInfo(self):
|
| """Output revision info mapping for the client and its dependencies. This
|
| - allows the capture of a overall "revision" for the source tree that can
|
| + allows the capture of an overall "revision" for the source tree that can
|
| be used to reproduce the same tree in the future. The actual output
|
| contains enough information (source paths, svn server urls and revisions)
|
| that it can be used either to generate external svn commands (without
|
| gclient) or as input to gclient's --rev option (with some massaging of
|
| the data).
|
|
|
| - NOTE: Unlike RunOnDeps this does not require a local checkout and is run
|
| - on the Pulse master. It MUST NOT execute hooks.
|
| -
|
| Raises:
|
| Error: If the client has conflicting entries.
|
| """
|
| @@ -830,13 +827,18 @@ class GClient(object):
|
| raise gclient_utils.Error("solution %s specified more than once" % name)
|
| (url, rev) = GetURLAndRev(name, solution["url"])
|
| entries[name] = "%s@%s" % (url, rev)
|
| - # TODO(aharper): SVN/SCMWrapper cleanup (non-local commandset)
|
| - entries_deps_content[name] = gclient_scm.scm.SVN.Capture(
|
| - ["cat",
|
| - "%s/%s@%s" % (url,
|
| - self._options.deps_file,
|
| - rev)],
|
| - os.getcwd())
|
| + deps_file = solution.get("deps_file", self._options.deps_file)
|
| + if '/' in deps_file or '\\' in deps_file:
|
| + raise gclient_utils.Error('deps_file name must not be a path, just a '
|
| + 'filename.')
|
| + try:
|
| + deps_content = gclient_utils.FileRead(
|
| + os.path.join(self._root_dir, name, deps_file))
|
| + except IOError, e:
|
| + if e.errno != errno.ENOENT:
|
| + raise
|
| + 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)
|
| @@ -863,7 +865,7 @@ class GClient(object):
|
| sub_deps = self._ParseSolutionDeps(deps[d].module_name, content, {})
|
| (url, rev) = GetURLAndRev(d, sub_deps[d])
|
| entries[d] = "%s@%s" % (url, rev)
|
| - print(";\n\n".join(["%s: %s" % (x, entries[x])
|
| + print(";\n".join(["%s: %s" % (x, entries[x])
|
| for x in sorted(entries.keys())]))
|
|
|
|
|
|
|