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

Unified Diff: trychange.py

Issue 248029: Make the try slave selection client side. (Closed) Base URL: svn://chrome-svn/chrome/trunk/tools/depot_tools/
Patch Set: 80 columns Created 11 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 | « 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
===================================================================
--- trychange.py (revision 28147)
+++ trychange.py (working copy)
@@ -24,6 +24,7 @@
import gcl
import gclient
import gclient_scm
+import presubmit_support
import upload
__version__ = '1.1.1'
@@ -195,6 +196,14 @@
os.chdir(previous_cwd)
return "".join(diff)
+ def GetFileNames(self):
+ """Return the list of files in the diff."""
+ return self.change_info.GetFileNames()
+
+ def GetLocalRoot(self):
+ """Return the path of the repository root."""
+ return self.change_info.GetLocalRoot()
+
def ProcessOptions(self):
if not self.options.diff:
# Generate the diff with svn and write it to the submit queue path. The
@@ -205,6 +214,8 @@
prefix = PathDifference(source_root, gcl.GetRepositoryRoot())
adjusted_paths = [os.path.join(prefix, x) for x in self.options.files]
self.options.diff = self.GenerateDiff(adjusted_paths, root=source_root)
+ self.change_info = gcl.LoadChangelistInfoForMultiple(self.options.name,
+ gcl.GetRepositoryRoot(), True, True)
class GIT(SCM):
@@ -225,6 +236,16 @@
# TODO: check for errors here?
return upload.RunShell(['git', 'config', 'user.email']).strip()
+ def GetFileNames(self):
+ """Return the list of files in the diff."""
+ return self.options.files
+
+ def GetLocalRoot(self):
+ """Return the path of the repository root."""
+ # TODO: check for errors here?
+ root = upload.RunShell(['git', 'rev-parse', '--show-cdup']).strip()
+ return os.path.abspath(root)
+
def GetPatchName(self):
"""Construct a name for this patch."""
# TODO: perhaps include the hash of the current commit, to distinguish
@@ -410,6 +431,12 @@
file_list,
swallow_exception,
prog=None):
+ """
+ Args:
+ argv: Arguments and options.
+ file_list: Default value to pass to --file.
+ swallow_exception: Whether we raise or swallow exceptions.
+ """
default_settings = GetTryServerSettings()
transport_functions = { 'http': _SendChangeHTTP, 'svn': _SendChangeSVN }
default_transport = transport_functions.get(
@@ -542,9 +569,19 @@
if not options.diff:
raise
+ # Get try slaves from PRESUBMIT.py files if not specified.
+ if not options.bot:
+ root_presubmit = gcl.GetCachedFile('PRESUBMIT.py', use_root=True)
+ options.bot = presubmit_support.DoGetTrySlaves(options.scm.GetFileNames(),
+ options.scm.GetLocalRoot(),
+ root_presubmit,
+ False,
+ sys.stdout)
+
# Send the patch.
patch_name = options.send_patch(options)
- print 'Patch \'%s\' sent to try server.' % patch_name
+ print 'Patch \'%s\' sent to try server: %s' % (patch_name,
+ ', '.join(options.bot))
if patch_name == 'Unnamed':
print "Note: use --name NAME to change the try's name."
except (InvalidScript, NoTryServerAccess), e:
« 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