diff --git client/pifr_client.admin.inc client/pifr_client.admin.inc
index cb0d411..049603b 100644
--- client/pifr_client.admin.inc
+++ client/pifr_client.admin.inc
@@ -122,6 +122,12 @@ function pifr_client_admin_configuration_form(&$form, $form_state) {
     '#default_value' => PIFR_CLIENT_TIMEOUT,
     '#required' => TRUE,
   );
+  $form['client']['pifr_reference_repository'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Reference repository'),
+    '#description' => t('A reference repo that git can use to obtain objects without downloading them. Like "/var/cache/git/reference" or "git://nearby.com/reference.git".'),
+    '#default_value' => variable_get('pifr_reference_repository', ''),
+  );
   $form['client']['pifr_drupal_repository'] = array(
     '#type' => 'textfield',
     '#title' => t('Drupal core repository URL'),
diff --git client/review/vcs/git.inc client/review/vcs/git.inc
index 5559e0a..464becf 100644
--- client/review/vcs/git.inc
+++ client/review/vcs/git.inc
@@ -24,13 +24,32 @@ class PIFRClientReviewVCS_git implements PIFRClientReviewVCS {
   protected $patch_level = 0;
 
 
+  /**
+   * Check out a given repo URL into given directory.
+   *
+   * @param $directory
+   *   Directory to check out into.
+   * @param unknown_type $url
+   *   Repo URL, like git://git.drupal.org/project/drupal.git
+   * @param $branch
+   *   Branch to check out, like 7.x-1.0.
+   */
   public function checkout($directory, $url, $branch) {
     $url = escapeshellarg($url);
     $branch = escapeshellarg($branch);
     if (!empty($directory)) {
       $directory = escapeshellarg($directory);
     }
-    $cmd = "git clone --depth 1 -b $branch $url $directory";
+    // We can use a reference repository to shortcut the wait for a clone.
+    // It can have any or all of the projects that might get checked out.
+    // This should be an absolute path to the reference repo or a git URL.
+    $reference_repo = variable_get('pifr_reference_repository', '');
+    if (!empty($reference_repo)) {
+      $cmd = "git clone --reference $reference_repo -b $branch $url $directory";
+    }
+    else {
+      $cmd = "git clone --depth 1 -b $branch $url $directory";
+    }
     return pifr_client_review::exec($cmd);
   }
 
diff --git review/client.inc review/client.inc
index 410d6b9..46359ff 100644
--- review/client.inc
+++ review/client.inc
@@ -659,15 +659,17 @@ abstract class pifr_client_review {
       $command .= ' 2>&1';
     }
     $cwd = getcwd();
+    $now = time();
     exec($command, $output, $status);
+    $duration = time() - $now;
     self::$instance->output = $output;
 
     $output = trim(implode("\n", $output));
     if ($status != 0) {
-      self::$instance->log("Command [$command] failed in directory [$cwd] with status [$status] and " . ($output ? "output:\n$output" : 'no output') . '.');
+      self::$instance->log("Command [$command] failed\n  Duration $duration seconds\n  Directory [$cwd]\n  Status [$status]\n Output: " . ($output ? "output:\n$output" : 'no output') . '.');
       return FALSE;
     }
-    self::$instance->log("Command [$command] succeeded in directory [$cwd] with status [$status] and " . ($output ? "output:\n$output" : 'no output') . '.');
+    self::$instance->log("Command [$command] succeeded\n  Duration: $duration seconds\n  Directory: [$cwd]\n  Completion status: [$status]\n  Output: " . ($output ? "output:\n$output" : 'no output') . '.');
     return TRUE;
   }
 }
