Test runner: Send SVN revision instead of git commit hash in work packet

Review URL: https://codereview.chromium.org/11013007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 09e73bc7
...@@ -67,7 +67,13 @@ class NetworkedRunner(execution.Runner): ...@@ -67,7 +67,13 @@ class NetworkedRunner(execution.Runner):
self.pubkey_fingerprint = None # Fetched later. self.pubkey_fingerprint = None # Fetched later.
self.base_rev = subprocess.check_output( self.base_rev = subprocess.check_output(
"cd %s; git log -1 --format=%%H --grep=git-svn-id" % workspace, "cd %s; git log -1 --format=%%H --grep=git-svn-id" % workspace,
shell=True) shell=True).strip()
self.base_svn_rev = subprocess.check_output(
"cd %s; git log -1 %s" # Get commit description.
" | grep -e '^\s*git-svn-id:'" # Extract "git-svn-id" line.
" | awk '{print $2}'" # Extract "repository@revision" part.
" | sed -e 's/.*@//'" % # Strip away "repository@".
(workspace, self.base_rev), shell=True).strip()
self.patch = subprocess.check_output( self.patch = subprocess.check_output(
"cd %s; git diff %s" % (workspace, self.base_rev), shell=True) "cd %s; git diff %s" % (workspace, self.base_rev), shell=True)
self.binaries = {} self.binaries = {}
...@@ -168,7 +174,7 @@ class NetworkedRunner(execution.Runner): ...@@ -168,7 +174,7 @@ class NetworkedRunner(execution.Runner):
peer.runtime = None peer.runtime = None
start_time = time.time() start_time = time.time()
packet = workpacket.WorkPacket(peer=peer, context=self.context, packet = workpacket.WorkPacket(peer=peer, context=self.context,
base_revision=self.base_rev, base_revision=self.base_svn_rev,
patch=self.patch, patch=self.patch,
pubkey=self.pubkey_fingerprint) pubkey=self.pubkey_fingerprint)
data, test_map = packet.Pack(self.binaries) data, test_map = packet.Pack(self.binaries)
......
...@@ -102,11 +102,22 @@ class WorkHandler(SocketServer.BaseRequestHandler): ...@@ -102,11 +102,22 @@ class WorkHandler(SocketServer.BaseRequestHandler):
os.chmod(target, stat.S_IRWXU) os.chmod(target, stat.S_IRWXU)
return True return True
def _CheckoutRevision(self, base_revision): def _CheckoutRevision(self, base_svn_revision):
code = self._Call("git checkout -f %s" % base_revision) get_hash_cmd = (
if code != 0: "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") 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: if code != 0:
self._SendResponse("Error trying to check out base revision.") self._SendResponse("Error trying to check out base revision.")
return False return False
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment