diff --git a/versioncontrol_git.install b/versioncontrol_git.install
index 445e21e..e137d3b 100644
--- a/versioncontrol_git.install
+++ b/versioncontrol_git.install
@@ -9,6 +9,115 @@
  */
 
 /**
+ * Implements hook_enable().
+ */
+function versioncontrol_git_enable() {
+  // If we are running an install ctools is needed but may not be included yet.
+  module_load_include('module', 'ctools');
+  $requirements = versioncontrol_git_requirements('runtime');
+  if ($requirements['versioncontrol_git']['severity'] !== REQUIREMENT_OK) {
+    drupal_set_message($requirements['versioncontrol_git']['description'], 'warning');
+  }
+}
+
+
+/**
+ * Implements hook_requirements().
+ */
+function versioncontrol_git_requirements($phase) {
+  $requirements = array();
+  $t = get_t();
+  $t_args = array();
+  if ($phase == 'runtime') {
+    $requirements['versioncontrol_git'] = array(
+      'title' => $t('Version Control Git'),
+    );
+    try {
+      // Try to ask git for the version installed.
+      $version = shell_exec(_versioncontrol_git_get_binary_path() . ' --version');
+      $version = _versioncontrol_git_check_version_string($version);
+      $t_args['@version'] = $version['version'];
+      $t_args['@required_version'] = VERSIONCONTROL_GIT_REQUIRED_GIT_VERSION;
+      if (empty($version['status'])) {
+        $message = 'Git version @version installed but a minimum of @required_version is required for local history synchronization.';
+        $severity = REQUIREMENT_WARNING;
+      }
+    }
+    catch (Exception $e) {
+      $message = 'Git could not be found, it is either not installed or not in your path.';
+      $severity = REQUIREMENT_ERROR;
+    }
+    if (!empty($version['status'])) {
+      try {
+        $path_version = shell_exec('git --version');
+        $path_version = _versioncontrol_git_check_version_string($path_version);
+        if ($path_version['status']) {
+          $message = 'Git version @version installed.';
+          $severity = REQUIREMENT_OK;
+        }
+        else {
+          $message = 'Git version @version installed and configured for use but @path_version installed in the system path so tests may not run properly.';
+          $t_args['@path_version'] = $path_version['version'];
+          $severity = REQUIREMENT_WARNING;
+        }
+      }
+      catch (Exception $e) {
+        $message = 'Git version @version installed but not in the path, unit tests may not run properly but the module should operate correctly.';
+        $severity = REQUIREMENT_INFO;
+      }
+    }
+  }
+  if (!empty($version['version'])) {
+    $requirements['versioncontrol_git']['value'] = $version['version'];
+  }
+  else {
+    $requirements['versioncontrol_git']['value'] = $t('Not found');
+  }
+  if (!empty($message)) {
+    $requirements['versioncontrol_git']['description'] = $t($message, $t_args);
+    $requirements['versioncontrol_git']['severity'] = $severity;
+  }
+  $iconv_status = 'Not available';
+  $iconv_severity = REQUIREMENT_ERROR;
+  if (function_exists('iconv')) {
+    $iconv_status = 'Enabled';
+    $iconv_severity = REQUIREMENT_OK;
+  }
+  $requirements['versioncontrol_git_iconv'] = array(
+    'title' => $t('Versioncontrol Git iconv module'),
+    'value' => $t($iconv_status),
+    'description' => $t('The <a href="http://php.net/manual/en/book.iconv.php">iconv module</a> is required for Versioncontrol Git to function properly.'),
+    'severity' => $iconv_severity,
+  );
+  return $requirements;
+}
+
+/**
+ * Compare a version string to our requirements.
+ *
+ * @param $version
+ *   The version of git optionally including the string "git version" as
+ *   returned by `git --version`.
+ *
+ * @return array
+ *   An array with the following keys:
+ *   - version: the string representing the version (without the "git version"
+ *   string).
+ *   - status: TRUE if the requirement is met, FALSE if not.
+ */
+function _versioncontrol_git_check_version_string($version) {
+  $return = array();
+  $return['status'] = version_compare($version, VERSIONCONTROL_GIT_REQUIRED_GIT_VERSION, '>=');
+  if (strpos($version, 'git version') !== FALSE) {
+    $return['version'] = substr($version, 12);
+  }
+  else {
+    $return['version'] = $version;
+  }
+  return $return;
+}
+
+/**
  * Implementation of hook_install().
  */
 function versioncontrol_git_install() {
