Add recipe for v8

BUG=none
R=dpranke@chromium.org,machenbach@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@268466 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/fetch.py b/fetch.py
index 5d595f4..d3bcacd 100755
--- a/fetch.py
+++ b/fetch.py
@@ -111,10 +111,12 @@
   def init(self):
     # Configure and do the gclient checkout.
     self.run_gclient('config', '--spec', self.spec['gclient_spec'])
+    sync_cmd = ['sync']
     if self.options.nohooks:
-      self.run_gclient('sync', '--nohooks')
-    else:
-      self.run_gclient('sync')
+      sync_cmd.append('--nohooks')
+    if self.spec.get('with_branch_heads', False):
+      sync_cmd.append('--with_branch_heads')
+    self.run_gclient(*sync_cmd)
 
     # Configure git.
     wd = os.path.join(self.base, self.root)
@@ -159,10 +161,11 @@
       wd = os.path.join(self.base, real_path)
       if self.options.dry_run:
         print 'cd %s' % wd
-      self.run_git('svn', 'init', '--prefix=origin/', '-T',
+      prefix = svn_spec.get('svn_prefix', 'origin/')
+      self.run_git('svn', 'init', '--prefix=' + prefix, '-T',
                    svn_spec['svn_branch'], svn_spec['svn_url'], cwd=wd)
       self.run_git('config', '--replace', 'svn-remote.svn.fetch',
-                   svn_spec['svn_branch'] + ':refs/remotes/origin/' +
+                   svn_spec['svn_branch'] + ':refs/remotes/' + prefix +
                    svn_spec['svn_ref'], cwd=wd)
       self.run_git('svn', 'fetch', cwd=wd)