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 *