? be-nice-to-sequences.patch Index: xcvs-db.php =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cvslog/xcvs/xcvs-db.php,v retrieving revision 1.4 diff -u -p -r1.4 xcvs-db.php --- xcvs-db.php 12 Nov 2006 08:01:59 -0000 1.4 +++ xcvs-db.php 15 Mar 2007 00:24:38 -0000 @@ -45,6 +45,17 @@ function xcvs_db_get_drupal_uid($user) { } /** + * Return a new unique ID in the given sequence. + */ +function xcvs_next_id($name) { + mysql_query('LOCK TABLES sequences WRITE'); + $id = mysql_result(mysql_query("SELECT id FROM sequences WHERE name = '". mysql_real_escape_string($name). "'"),0) + 1; + mysql_query("REPLACE INTO sequences VALUES ('". mysql_real_escape_string($name). "',$id)"); + mysql_query('UNLOCK TABLES'); + return $id; +} + +/** * Determines the numeric drupal node id (nid) for the project a given * file belongs to. */ Index: xcvs-loginfo.php =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cvslog/xcvs/xcvs-loginfo.php,v retrieving revision 1.8 diff -u -p -r1.8 xcvs-loginfo.php --- xcvs-loginfo.php 21 Jan 2007 18:39:45 -0000 1.8 +++ xcvs-loginfo.php 15 Mar 2007 00:24:38 -0000 @@ -206,11 +206,7 @@ function xcvs_init($argc, $argv) { $connection = xcvs_db_connect($xcvs); - // Lock the affected tables so avoid clashes (transactions): - mysql_query('LOCK TABLES cvs_messages, cvs_files, cvs_users, cvs_tags'); - - $cid = mysql_result(mysql_query("SELECT id FROM sequences WHERE name = 'cvs_messages_cid'"), 0) + 1; - mysql_query("REPLACE INTO sequences VALUES ('cvs_messages_cid', $cid)"); + $cid = xcvs_next_id('cvs_messages_cid'); $uid = mysql_result(mysql_query("SELECT uid FROM cvs_accounts WHERE name = '". mysql_escape_string($user) ."'"), 0); @@ -237,9 +233,6 @@ function xcvs_init($argc, $argv) { } } - // Lock the affected tables so avoid clashes (transactions): - mysql_query('UNLOCK TABLES'); - mysql_close($connection); }