? 945130-versioncontrol_repositories-make-update-method-updated-and-locked-columns.patch
? 945130-versioncontrol_repositories-make-update-method-updated-and-locked-columns.patch.1
? includes/views/versioncontrol.views_default.inc
? includes/views/handlers/versioncontrol_handler_field_repository_actions.inc
Index: versioncontrol.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/versioncontrol/versioncontrol.install,v
retrieving revision 1.55
diff -u -p -r1.55 versioncontrol.install
--- versioncontrol.install	22 Oct 2010 15:59:05 -0000	1.55
+++ versioncontrol.install	2 Nov 2010 04:18:29 -0000
@@ -171,6 +171,18 @@ function versioncontrol_schema() {
         'not null' => TRUE,
         'default' => 0,
       ),
+      'updated' => array(
+        'description' => 'The Unix timestamp when this repository was last updated.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0
+      ),
+      'update_method' => array(
+        'description' => 'The method that this repository will use to update the operations table.  This should correspond to constants provided by the backend provider.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 1
+      ),
       'data' => array(
         'description' => 'A serialized array of additional per-label data.',
         'type' => 'text',
@@ -662,3 +674,34 @@ function versioncontrol_update_6301() {
   db_add_field($ret, 'versioncontrol_labels', 'data', $data_spec);
   return $ret;
 }
+
+/**
+ * Add the 'updated', 'updated_method' and 'locked' columns.
+ *
+ * These fields were previously stored as members of a serialized array stored
+ * in the data column but this could be problematic for views integration and
+ * the operations that we need to perform across large numbers of repositories.
+ *
+ * @return array
+ */
+function versioncontrol_update_6302() {
+  $ret = array();
+  $fields = array(
+    'updated' => array(
+      'description' => 'The Unix timestamp when this repository was last updated.',
+      'type' => 'int',
+      'not null' => TRUE,
+      'default' => 0
+    ),
+    'update_method' => array(
+      'description' => 'The method that this repository will use to update the operations table.  This should correspond to constants provided by the backend provider.',
+      'type' => 'int',
+      'not null' => TRUE,
+      'default' => 1
+    ),
+  );
+  foreach  ($fields as $field_name => $data_spec) {
+    db_add_field($ret, 'versioncontrol_repositories', $field_name, $data_spec);
+  }
+  return $ret;
+}
Index: includes/VersioncontrolRepository.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/versioncontrol/includes/VersioncontrolRepository.php,v
retrieving revision 1.10
diff -u -p -r1.10 VersioncontrolRepository.php
--- includes/VersioncontrolRepository.php	27 Oct 2010 15:48:43 -0000	1.10
+++ includes/VersioncontrolRepository.php	2 Nov 2010 04:18:29 -0000
@@ -52,6 +52,22 @@ abstract class VersioncontrolRepository 
   public $authorization_method = 'versioncontrol_admin';
 
   /**
+   * The method that this repository will use to update the operations table.
+   *
+   * This should correspond to constants provided by the backend provider.
+   *
+   * @var    integer
+   */
+  public $update_method = 0;
+
+  /**
+   * The Unix timestamp when this repository was last updated.
+   *
+   * @var    integer
+   */
+  public $updated = 0;
+
+  /**
    * An array of additional per-repository settings, mostly populated by
    * third-party modules. It is serialized on DB.
    */
