Support for |change| argument to |GetPreferredTrySlaves()|.

Needed to make it so changes containing only *.mm are only sent to Mac trybots by default.

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/7925014

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@102783 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index cb33488..9946999 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -488,8 +488,7 @@
       self.SetPatchset(0)
     self.has_issue = False
 
-  def RunHook(self, committing, upstream_branch, may_prompt, verbose, author):
-    """Calls sys.exit() if the hook fails; returns a HookResults otherwise."""
+  def GetChange(self, upstream_branch, author):
     root = RunCommand(['git', 'rev-parse', '--show-cdup']).strip() or '.'
     absroot = os.path.abspath(root)
 
@@ -511,7 +510,7 @@
 
     if not author:
       author = RunGit(['config', 'user.email']).strip() or None
-    change = presubmit_support.GitChange(
+    return presubmit_support.GitChange(
         name,
         description,
         absroot,
@@ -520,6 +519,10 @@
         patchset,
         author)
 
+  def RunHook(self, committing, upstream_branch, may_prompt, verbose, author):
+    """Calls sys.exit() if the hook fails; returns a HookResults otherwise."""
+    change = self.GetChange(upstream_branch, author)
+
     # Apply watchlists on upload.
     if not committing:
       watchlist = watchlists.Watchlists(change.RepositoryRoot())