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

Unified Diff: deps2git/deps2git.py

Issue 11085027: Add --workspace option, so deps2git.py may be run in a (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/
Patch Set: Created 8 years, 2 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 | deps2git/git_tools.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: deps2git/deps2git.py
===================================================================
--- deps2git/deps2git.py (revision 160870)
+++ deps2git/deps2git.py (working copy)
@@ -23,28 +23,35 @@
return (scm_url, scm_rev)
-def SvnRevToGitHash(svn_rev, git_url, repos_path, git_host):
+def SvnRevToGitHash(svn_rev, git_url, repos_path, workspace, dep_path,
+ git_host):
"""Convert a SVN revision to a Git commit id."""
git_repo = None
if git_url.startswith(git_host):
git_repo = git_url.replace(git_host, '')
else:
raise Exception('Unknown git server')
- if repos_path is None:
+ if repos_path is None and workspace is None:
# We're running without a repository directory (i.e. no -r option).
# We cannot actually find the commit id, but this mode is useful
# just for testing the URL mappings. Produce an output file that
# can't actually be used, but can be eyeballed for correct URLs.
return 'xxx-r%s' % svn_rev
- git_repo_path = os.path.join(repos_path, git_repo)
+ if repos_path:
+ git_repo_path = os.path.join(repos_path, git_repo)
+ mirror = True
+ else:
+ git_repo_path = os.path.join(workspace, dep_path)
+ mirror = False
if not os.path.exists(git_repo_path):
- git_tools.Clone(git_url, git_repo_path)
+ git_tools.Clone(git_url, git_repo_path, mirror)
else:
- git_tools.Fetch(git_repo_path)
- return git_tools.Search(git_repo_path, svn_rev)
+ git_tools.Fetch(git_repo_path, mirror)
+ return git_tools.Search(git_repo_path, svn_rev, mirror)
-def ConvertDepsToGit(deps, repos, deps_type, deps_vars, svn_deps_vars, verify):
+def ConvertDepsToGit(deps, repos, workspace, deps_type, deps_vars,
+ svn_deps_vars, verify):
"""Convert a 'deps' section in a DEPS file from SVN to Git."""
new_deps = {}
bad_git_urls = set([])
@@ -105,8 +112,8 @@
if dep_url.endswith('.git'):
git_hash = '@%s' % dep_rev
else:
- git_hash = '@%s' % SvnRevToGitHash(dep_rev, git_url, repos,
- svn_to_git.GIT_HOST)
+ git_hash = '@%s' % SvnRevToGitHash(dep_rev, git_url, repos, workspace,
+ path, svn_to_git.GIT_HOST)
# If this is webkit, we need to add the var for the hash.
if dep == 'src/third_party/WebKit/Source':
@@ -129,6 +136,8 @@
help='type of DEPS file (public, etc)')
parser.add_option('-r', '--repos',
help='path to the directory holding all the Git repos')
+ parser.add_option('-w', '--workspace', metavar='PATH',
+ help='top level of a git-based gclient checkout')
parser.add_option('--verify', action='store_true',
help='ping each Git repo to make sure it exists')
options = parser.parse_args()[0]
@@ -147,12 +156,14 @@
}
# Convert the DEPS file to Git.
- deps, baddeps = ConvertDepsToGit(deps, options.repos, options.type, deps_vars,
- svn_deps_vars, options.verify)
+ deps, baddeps = ConvertDepsToGit(deps, options.repos, options.workspace,
+ options.type, deps_vars, svn_deps_vars,
+ options.verify)
for os_dep in deps_os:
deps_os[os_dep], os_bad_deps = ConvertDepsToGit(deps_os[os_dep],
- options.repos, options.type, deps_vars,
- svn_deps_vars, options.verify)
+ options.repos, options.workspace,
+ options.type, deps_vars, svn_deps_vars,
+ options.verify)
baddeps = baddeps.union(os_bad_deps)
if baddeps:
« no previous file with comments | « no previous file | deps2git/git_tools.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698