use canonical base URL for projects
BUG=372645
R=iannucci@chromium.org, sergeyberezin@chromium.org
Review URL: https://codereview.chromium.org/271703010
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@270460 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index 06594f0..6e56401 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -635,12 +635,17 @@
return True
def GetGitBaseUrlFromConfig(self):
- """Return the configured base URL from branch.<branchname>.baseurl.
+ """Return the configured base URL from branch.<branchname>.canonical-url.
Returns None if it is not set.
"""
- return RunGit(['config', 'branch.%s.base-url' % self.GetBranch()],
- error_ok=True).strip()
+ branch = self.GetBranch()
+ url = RunGit(['config', 'branch.%s.canonical-url' % branch],
+ error_ok=True).strip()
+ if not url:
+ url = RunGit(['config', 'branch.%s.base-url' % branch],
+ error_ok=True).strip()
+ return url
def GetRemoteUrl(self):
"""Return the configured remote URL, e.g. 'git://example.org/foo.git/'.
@@ -1074,6 +1079,13 @@
RunGit(['config', keyvals['PUSH_URL_CONFIG'],
keyvals['ORIGIN_URL_CONFIG']])
+ if 'CANONICAL_URL' in keyvals:
+ branchref = RunGit(['symbolic-ref', 'HEAD']).strip()
+ branch = ShortBranchName(branchref)
+ RunGit(['config', 'branch.%s.canonical-url' % branch,
+ keyvals['CANONICAL_URL']],
+ error_ok=False)
+
def urlretrieve(source, destination):
"""urllib is broken for SSL connections via a proxy therefore we
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index 2d20440..a6aa287 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -204,6 +204,7 @@
return [
((['git', 'config', 'core.editor'],), ''),
] + cc_call + private_call + [
+ ((['git', 'config', 'branch.master.canonical-url'],), ''),
((['git', 'config', 'branch.master.base-url'],), ''),
((['git',
'config', '--local', '--get-regexp', '^svn-remote\\.'],),