| Index: tools/testrunner/server/work_handler.py
|
| diff --git a/tools/testrunner/server/work_handler.py b/tools/testrunner/server/work_handler.py
|
| index d1e0666c41790bc7bae2f96a08fe2b12736f1260..9e61af8227adaff2c1c314de77f1d0a3131ef44d 100644
|
| --- a/tools/testrunner/server/work_handler.py
|
| +++ b/tools/testrunner/server/work_handler.py
|
| @@ -102,11 +102,22 @@ class WorkHandler(SocketServer.BaseRequestHandler):
|
| os.chmod(target, stat.S_IRWXU)
|
| return True
|
|
|
| - def _CheckoutRevision(self, base_revision):
|
| - code = self._Call("git checkout -f %s" % base_revision)
|
| - if code != 0:
|
| + def _CheckoutRevision(self, base_svn_revision):
|
| + get_hash_cmd = (
|
| + "git log -1 --format=%%H --remotes --grep='^git-svn-id:.*@%s'" %
|
| + base_svn_revision)
|
| + try:
|
| + base_revision = subprocess.check_output(get_hash_cmd, shell=True)
|
| + if not base_revision: raise ValueError
|
| + except:
|
| self._Call("git fetch")
|
| - code = self._Call("git checkout -f %s" % base_revision)
|
| + try:
|
| + base_revision = subprocess.check_output(get_hash_cmd, shell=True)
|
| + if not base_revision: raise ValueError
|
| + except:
|
| + self._SendResponse("Base revision not found.")
|
| + return False
|
| + code = self._Call("git checkout -f %s" % base_revision)
|
| if code != 0:
|
| self._SendResponse("Error trying to check out base revision.")
|
| return False
|
|
|