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

Unified Diff: trychange.py

Issue 515037: Add back automatic fallback to svn access when http access fails. (Closed)
Patch Set: Created 11 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 | « tests/trychange_unittest.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trychange.py
diff --git a/trychange.py b/trychange.py
index 47d670c08605fd45151a8bd5f43aa726724b8bf7..ee5f0eddcddd5725259b09ac71e678231eb3f568 100755
--- a/trychange.py
+++ b/trychange.py
@@ -261,6 +261,7 @@ def _SendChangeHTTP(options):
else:
proxies = {'http': options.proxy, 'https': options.proxy}
+ logging.warning('Sending by HTTP')
logging.info(description)
logging.info(url)
logging.info(options.diff)
@@ -293,6 +294,7 @@ def _SendChangeSVN(options):
values = _ParseSendChangeOptions(options)
description = ''.join("%s=%s\n" % (k,v) for (k,v) in values.iteritems())
+ logging.warning('Sending by SVN')
logging.info(description)
logging.info(options.svn_repo)
logging.info(options.diff)
@@ -345,6 +347,14 @@ def _SendChangeSVN(options):
shutil.rmtree(temp_dir, True)
+def PrintSuccess(options):
+ if not options.dry_run:
+ text = 'Patch \'%s\' sent to try server' % options.name
+ if options.bot:
+ text += ': %s' % ', '.join(options.bot)
+ print(text)
+
+
def GuessVCS(options, cwd):
"""Helper to guess the version control system.
@@ -511,15 +521,12 @@ def TryChange(argv,
checkout.GetLocalRoot())
checkouts.append(checkout)
+ can_http = options.port and options.host
+ can_svn = options.svn_repo
# If there was no transport selected yet, now we must have enough data to
# select one.
- if not options.send_patch:
- if options.port and options.host:
- options.send_patch = _SendChangeHTTP
- elif options.svn_repo:
- options.send_patch = _SendChangeSVN
- else:
- parser.error('Please specify an access method.')
+ if not options.send_patch and not (can_http or can_svn):
+ parser.error('Please specify an access method.')
# Convert options.diff into the content of the diff.
if options.url:
@@ -575,12 +582,22 @@ def TryChange(argv,
print('Results will be emailed to: ' + options.email)
# Send the patch.
- options.send_patch(options)
- if not options.dry_run:
- text = 'Patch \'%s\' sent to try server' % options.name
- if options.bot:
- text += ': %s' % ', '.join(options.bot)
- print(text)
+ if options.send_patch:
+ # If forced.
+ options.send_patch(options)
+ PrintSuccess(options)
+ return 0
+ try:
+ if can_http:
+ _SendChangeHTTP(options)
+ PrintSuccess(options)
+ return 0
+ except NoTryServerAccess:
+ if not can_svn:
+ raise
+ _SendChangeSVN(options)
+ PrintSuccess(options)
+ return 0
except (InvalidScript, NoTryServerAccess), e:
if swallow_exception:
return 1
« no previous file with comments | « tests/trychange_unittest.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698