diff --git client/review/vcs/git.inc client/review/vcs/git.inc
new file mode 100644
index 0000000..155afcc
--- /dev/null
+++ client/review/vcs/git.inc
@@ -0,0 +1,44 @@
+<?php
+// $Id: git.inc,v 1.5 2010/11/16 20:23:07 boombatower Exp $
+
+/**
+ * @file
+ * Git implementation of review interface.
+ *
+ * @author Jimmy Berry ("boombatower", http://drupal.org/user/214218)
+ */
+
+/**
+ * Git implementation of VCS interface.
+ */
+class PIFRClientReviewVCS_git implements PIFRClientReviewVCS {
+
+  public function checkout($directory, $url, $branch) {
+    $url = escapeshellarg($url);
+    $branch = escapeshellarg($branch);
+    $directory = escapeshellarg($directory ? $directory : '.');
+    return pifr_client_review::exec("git clone --depth 1 -b $branch $url $directory");
+  }
+  
+  public function apply($patch) {
+    return pifr_client_review::exec("patch -p0 -i $patch");
+  }
+
+  public function get_changed_files($patch) {
+    $contents = file_get_contents($patch);
+    preg_match_all('/^[\+-]{3}\s+(.*?)\s/m', $contents, $matches, PREG_SET_ORDER);
+
+    $files = array();
+    foreach ($matches as $match) {
+      if ($match[1] != '/dev/null') {
+        $files[] = $match[1];
+      }
+    }
+    return array_unique($files);
+  }
+
+  public function get_display($url, $branch) {
+    return $url . ' (' . $branch . ')';
+  }
+}
+
diff --git review/client.inc review/client.inc
index fdd6093..3d20d2a 100644
--- review/client.inc
+++ review/client.inc
@@ -658,12 +658,13 @@ abstract class pifr_client_review {
     if ($capture_stderr) {
       $command .= ' 2>&1';
     }
+    $cwd = getcwd();
     exec($command, $output, $status);
     self::$instance->output = $output;
 
     if ($status != 0) {
       $output = trim(implode("\n", $output));
-      self::$instance->log("Command [$command] failed with status [$status] and " .
+      self::$instance->log("Command [$command] failed in directory [$cwd] with status [$status] and " .
         ($output ? "output:\n$output" : 'no output') . '.');
       return FALSE;
     }
diff --git review/drupal/pifr_drupal.client.inc review/drupal/pifr_drupal.client.inc
index 5a38e03..4781d64 100644
--- review/drupal/pifr_drupal.client.inc
+++ review/drupal/pifr_drupal.client.inc
@@ -16,7 +16,7 @@ class pifr_client_review_pifr_drupal extends pifr_client_review {
   /**
    * Default Drupal core repository URL.
    */
-  protected $core_url = ':pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal/drupal';
+  protected $core_url = 'git://git-dev.drupal.org/project/drupal.git';
 
   /**
    * Location of default sites module directory.
@@ -71,7 +71,7 @@ class pifr_client_review_pifr_drupal extends pifr_client_review {
 
     // Add SimpleTest as dependencies, unless it has already been added.
     if ($this->test['review']['argument']['core'] == 6) {
-      $simpletest_url = ':pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib/contributions/modules/simpletest';
+      $simpletest_url = 'git://git.drupal.org/project/simpletest.git';
       $found = FALSE;
       foreach ($this->test['vcs']['dependencies'] as $key => $dependency) {
         if ($dependency['repository']['url'] == $simpletest_url) {
@@ -85,10 +85,10 @@ class pifr_client_review_pifr_drupal extends pifr_client_review {
         // out from contrib.
         $this->test['vcs']['dependencies'][] = array(
           'repository' => array(
-            'type' => 'cvs',
+            'type' => 'git',
             'url' => $simpletest_url,
           ),
-          'vcs_identifier' => 'DRUPAL-6--2',
+          'vcs_identifier' => '6.x-2.x',
         );
       }
     }
diff --git review/drupal/pifr_drupal.server.inc review/drupal/pifr_drupal.server.inc
index a694e52..ab49530 100644
--- review/drupal/pifr_drupal.server.inc
+++ review/drupal/pifr_drupal.server.inc
@@ -44,10 +44,10 @@ abstract class pifr_server_review_pifr_drupal extends pifr_server_review_pifr_as
 
     $this->confirmation_default['vcs']['main'] = array(
       'repository' => array(
-        'type' => 'cvs',
-        'url' => ':pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal/drupal',
+        'type' => 'git',
+        'url' => 'git://git.drupal.org/project/drupal.git',
       ),
-      'vcs_identifier' => 'HEAD',
+      'vcs_identifier' => '7.0',
     );
   }
 }
