Author: hwright
Date: Thu Dec  3 02:51:55 2009
New Revision: 886663

URL: http://svn.apache.org/viewvc?rev=886663&view=rev
Log:
When writing working copy locks from legacy sources, always use
depth-immediate (no implicit locks).

* subversion/libsvn_wc/lock.c
  (adm_access_alloc, svn_wc__acquire_write_lock): Set levels_to_lock as 0 in
    the sdb.

* subversion/libsvn_wc/upgrade.c
  (upgrade_to_wcng): Same.

* subversion/libsvn_wc/log.c
  (cleanup_internal): Same.

* subversion/libsvn_wc/wc-queries.sql
  (STMT_INSERT_WC_LOCK): Allow consumers to set the locked_levels column.

* subversion/libsvn_wc/wc_db.c
  (svn_wc__db_wclock_set): Add levels_to_lock parameter, and use it.

* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_wclock_set): Add levels_to_lock parameter.

Modified:
    subversion/trunk/subversion/libsvn_wc/lock.c
    subversion/trunk/subversion/libsvn_wc/log.c
    subversion/trunk/subversion/libsvn_wc/upgrade.c
    subversion/trunk/subversion/libsvn_wc/wc-queries.sql
    subversion/trunk/subversion/libsvn_wc/wc_db.c
    subversion/trunk/subversion/libsvn_wc/wc_db.h

Modified: subversion/trunk/subversion/libsvn_wc/lock.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/lock.c?rev=886663&r1=886662&r2=886663&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/lock.c (original)
+++ subversion/trunk/subversion/libsvn_wc/lock.c Thu Dec  3 02:51:55 2009
@@ -310,7 +310,7 @@
 
   if (write_lock)
     {
-      SVN_ERR(svn_wc__db_wclock_set(db, lock->abspath, scratch_pool));
+      SVN_ERR(svn_wc__db_wclock_set(db, lock->abspath, 0, scratch_pool));
       SVN_ERR(svn_wc__db_temp_mark_locked(db, lock->abspath, scratch_pool));
     }
 
@@ -1791,7 +1791,7 @@
                                            NULL, iterpool));
     }
 
-  SVN_ERR(svn_wc__db_wclock_set(wc_ctx->db, local_abspath, iterpool));
+  SVN_ERR(svn_wc__db_wclock_set(wc_ctx->db, local_abspath, 0, iterpool));
   SVN_ERR(svn_wc__db_temp_mark_locked(wc_ctx->db, local_abspath, iterpool));
 
   svn_pool_destroy(iterpool);

Modified: subversion/trunk/subversion/libsvn_wc/log.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/log.c?rev=886663&r1=886662&r2=886663&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/log.c (original)
+++ subversion/trunk/subversion/libsvn_wc/log.c Thu Dec  3 02:51:55 2009
@@ -1374,7 +1374,7 @@
   SVN_ERR(can_be_cleaned(&wc_format, db, adm_abspath, iterpool));
 
   /* Lock this working copy directory, or steal an existing lock */
-  err = svn_wc__db_wclock_set(db, adm_abspath, iterpool);
+  err = svn_wc__db_wclock_set(db, adm_abspath, 0, iterpool);
   if (err && err->apr_err == SVN_ERR_WC_LOCKED)
     svn_error_clear(err);
   else if (err)

Modified: subversion/trunk/subversion/libsvn_wc/upgrade.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/upgrade.c?rev=886663&r1=886662&r2=886663&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/upgrade.c (original)
+++ subversion/trunk/subversion/libsvn_wc/upgrade.c Thu Dec  3 02:51:55 2009
@@ -377,7 +377,7 @@
      function bumps a working copy all the way to current.  */
   SVN_ERR(svn_wc__db_temp_reset_format(SVN_WC__VERSION, db, dir_abspath,
                                        scratch_pool));
-  SVN_ERR(svn_wc__db_wclock_set(db, dir_abspath, scratch_pool));
+  SVN_ERR(svn_wc__db_wclock_set(db, dir_abspath, 0, scratch_pool));
   SVN_ERR(svn_wc__write_upgraded_entries(db, sdb, repos_id, wc_id,
                                          dir_abspath, entries,
                                          scratch_pool));

Modified: subversion/trunk/subversion/libsvn_wc/wc-queries.sql
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc-queries.sql?rev=886663&r1=886662&r2=886663&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/trunk/subversion/libsvn_wc/wc-queries.sql Thu Dec  3 02:51:55 
2009
@@ -281,8 +281,8 @@
 WHERE wc_id = ?1 AND local_relpath = ?2;
 
 -- STMT_INSERT_WC_LOCK
-INSERT INTO WC_LOCK (wc_id, local_dir_relpath)
-VALUES (?1, ?2);
+INSERT INTO WC_LOCK (wc_id, local_dir_relpath, locked_levels)
+VALUES (?1, ?2, ?3);
 
 -- STMT_SELECT_WC_LOCK
 SELECT local_dir_relpath FROM WC_LOCK

Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=886663&r1=886662&r2=886663&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Thu Dec  3 02:51:55 2009
@@ -5580,6 +5580,7 @@
 svn_error_t *
 svn_wc__db_wclock_set(svn_wc__db_t *db,
                       const char *local_abspath,
+                      int levels_to_lock,
                       apr_pool_t *scratch_pool)
 {
   svn_sqlite__stmt_t *stmt;
@@ -5587,6 +5588,7 @@
 
   SVN_ERR(get_statement_for_path(&stmt, db, local_abspath,
                                  STMT_INSERT_WC_LOCK, scratch_pool));
+  SVN_ERR(svn_sqlite__bind_int64(stmt, 3, levels_to_lock));
   err = svn_sqlite__insert(NULL, stmt);
   if (err)
     return svn_error_createf(SVN_ERR_WC_LOCKED, err,

Modified: subversion/trunk/subversion/libsvn_wc/wc_db.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.h?rev=886663&r1=886662&r2=886663&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.h Thu Dec  3 02:51:55 2009
@@ -1817,6 +1817,7 @@
 svn_error_t *
 svn_wc__db_wclock_set(svn_wc__db_t *db,
                       const char *local_abspath,
+                      int levels_to_lock,
                       apr_pool_t *scratch_pool);
 
 svn_error_t *


Reply via email to