? .git
Index: versioncontrol.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/versioncontrol/versioncontrol.install,v
retrieving revision 1.54
diff -u -p -r1.54 versioncontrol.install
--- versioncontrol.install	11 Aug 2010 10:09:52 -0000	1.54
+++ versioncontrol.install	20 Oct 2010 18:43:33 -0000
@@ -376,6 +376,25 @@ function versioncontrol_schema() {
         'not null' => TRUE,
         'default' => '',
       ),
+      '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
+      ),
+      // TODO: Remove this when the semaphore API has been integrated.
+      'locked' => array(
+        'description' => 'Boolean indicating whether the repository is locked.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 1
+      ),
       'data' => array(
         'description' => t('A serialized array of additional per-repository settings, mostly populated by backends.'),
         'type' => 'text',
@@ -653,4 +672,42 @@ function versioncontrol_update_6301() {
   );
   db_add_field($ret, 'versioncontrol_labels', 'data', $data_spec);
   return $ret;
-}
\ No newline at end of file
+}
+
+/**
+ * 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
+    ),
+    // TODO: Remove this when the semaphore API has been integrated.
+    'locked' => array(
+      'description' => 'Boolean indicating whether the repository is locked.',
+      '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.7
diff -u -p -r1.7 VersioncontrolRepository.php
--- includes/VersioncontrolRepository.php	18 Oct 2010 21:41:35 -0000	1.7
+++ includes/VersioncontrolRepository.php	20 Oct 2010 18:43:33 -0000
@@ -57,6 +57,31 @@ abstract class VersioncontrolRepository 
    */
   public $data = array();
 
+  /**
+   * 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;
+
+  /**
+   * Whether 
+   *
+   * TODO: This should be reworked to use the semaphore API.
+   *
+   * @var    boolean
+   */
+  public $locked = 0;
+
   // Associations
   /**
    * The backend associated with this repository
