Index: review/drupal/pifr_drupal.client.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/review/drupal/pifr_drupal.client.inc,v
retrieving revision 1.9
diff -u -p -r1.9 pifr_drupal.client.inc
--- review/drupal/pifr_drupal.client.inc        27 Jan 2010 02:11:33 -0000      1.9
+++ review/drupal/pifr_drupal.client.inc        4 Feb 2011 21:33:34 -0000
@@ -16,7 +16,7 @@ class pifr_client_review_pifr_drupal ext
   /**
    * Default Drupal core repository URL.
    */
-  protected $core_url = ':pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal/drupal';
+  protected $core_url = 'git://git.drupal.org/project/drupal.git';
 
   /**
    * Location of default sites module directory.
@@ -71,7 +71,7 @@ class pifr_client_review_pifr_drupal ext
 
     // 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 ext
         // 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',
         );
       }
     }
Index: review/drupal/pifr_drupal.server.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/review/drupal/pifr_drupal.server.inc,v
retrieving revision 1.5
diff -u -p -r1.5 pifr_drupal.server.inc
--- review/drupal/pifr_drupal.server.inc        19 Dec 2009 00:00:22 -0000      1.5
+++ review/drupal/pifr_drupal.server.inc        4 Feb 2011 21:33:34 -0000
@@ -44,10 +44,10 @@ abstract class pifr_server_review_pifr_d
 
     $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',
     );
   }
 }
Index: client/review/vcs/git.inc
===================================================================
-- /dev/null   2011-02-04 13:06:54.467000002 -0600
+++ client/review/vcs/git.inc   2011-02-04 15:33:45.277000012 -0600
@@ -0,0 +1,43 @@
+<?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 . ')';
+  }
+}