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

Unified Diff: git_cl.py

Issue 760903004: Rewrite Google Code http URLs with https on git svn dcommit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Fixed style violation Created 6 years 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 | tests/git_cl_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: git_cl.py
diff --git a/git_cl.py b/git_cl.py
index fbe52afe0c6293fc0634a26e086d6ec143f4a659..f50e7023f329324eb383c179682bc2a2ebe4720c 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -284,6 +284,7 @@ class Settings(object):
self.is_gerrit = None
self.git_editor = None
self.project = None
+ self.force_https_commit_url = None
self.pending_ref_prefix = None
def LazyUpdateIfNeeded(self):
@@ -455,6 +456,12 @@ class Settings(object):
self.project = self._GetRietveldConfig('project', error_ok=True)
return self.project
+ def GetForceHttpsCommitUrl(self):
+ if not self.force_https_commit_url:
+ self.force_https_commit_url = self._GetRietveldConfig(
+ 'force-https-commit-url', error_ok=True)
+ return self.force_https_commit_url
+
def GetPendingRefPrefix(self):
if not self.pending_ref_prefix:
self.pending_ref_prefix = self._GetRietveldConfig(
@@ -674,6 +681,19 @@ or verify this branch is set up to track another (via the --track argument to
return RunGit(['config', 'branch.%s.base-url' % self.GetBranch()],
error_ok=True).strip()
+ def GetGitSvnRemoteUrl(self):
+ """Return the configured git-svn remote URL parsed from git svn info.
+
+ Returns None if it is not set.
+ """
+ # URL is dependent on the current directory.
+ data = RunGit(['svn', 'info'], cwd=settings.GetRoot())
+ if data:
+ keys = dict(line.split(': ', 1) for line in data.splitlines()
+ if ': ' in line)
+ return keys.get('URL', None)
+ return None
+
def GetRemoteUrl(self):
"""Return the configured remote URL, e.g. 'git://example.org/foo.git/'.
@@ -1170,6 +1190,8 @@ def LoadCodereviewSettingsFromFile(fileobj):
SetProperty('viewvc-url', 'VIEW_VC', unset_error_ok=True)
SetProperty('bug-prefix', 'BUG_PREFIX', unset_error_ok=True)
SetProperty('cpplint-regex', 'LINT_REGEX', unset_error_ok=True)
+ SetProperty('force-https-commit-url', 'FORCE_HTTPS_COMMIT_URL',
+ unset_error_ok=True)
SetProperty('cpplint-ignore-regex', 'LINT_IGNORE_REGEX', unset_error_ok=True)
SetProperty('project', 'PROJECT', unset_error_ok=True)
SetProperty('pending-ref-prefix', 'PENDING_REF_PREFIX', unset_error_ok=True)
@@ -1718,12 +1740,7 @@ def RietveldUpload(options, args, cl, change):
remote_url = cl.GetGitBaseUrlFromConfig()
if not remote_url:
if settings.GetIsGitSvn():
- # URL is dependent on the current directory.
- data = RunGit(['svn', 'info'], cwd=settings.GetRoot())
- if data:
- keys = dict(line.split(': ', 1) for line in data.splitlines()
- if ': ' in line)
- remote_url = keys.get('URL', None)
+ remote_url = cl.GetGitSvnRemoteUrl()
else:
if cl.GetRemoteUrl() and '/' in cl.GetUpstreamBranch():
remote_url = (cl.GetRemoteUrl() + '@'
@@ -2098,9 +2115,19 @@ def SendUpstream(parser, args, cmd):
revision = RunGit(['rev-parse', 'HEAD']).strip()
else:
# dcommit the merge branch.
- _, output = RunGitWithCode(['svn', 'dcommit',
- '-C%s' % options.similarity,
- '--no-rebase', '--rmdir'])
+ cmd = [
+ 'svn', 'dcommit',
+ '-C%s' % options.similarity,
+ '--no-rebase', '--rmdir',
+ ]
+ if settings.GetForceHttpsCommitUrl():
+ # Allow forcing https commit URLs for some projects that don't allow
+ # committing to http URLs (like Google Code).
+ remote_url = cl.GetGitSvnRemoteUrl()
+ if urlparse.urlparse(remote_url).scheme == 'http':
+ remote_url = remote_url.replace('http://', 'https://')
+ cmd.append('--commit-url=%s' % remote_url)
+ _, output = RunGitWithCode(cmd)
if 'Committed r' in output:
revision = re.match(
'.*?\nCommitted r(\\d+)', output, re.DOTALL).group(1)
« no previous file with comments | « no previous file | tests/git_cl_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698