Author: julianfoad
Date: Fri Jul 30 09:00:03 2010
New Revision: 980688
URL: http://svn.apache.org/viewvc?rev=980688&view=rev
Log:
* subversion/libsvn_wc/wc_db.c
(pristine_remove): New function, factored out of ...
(svn_wc__db_pristine_remove): ... here.
Modified:
subversion/trunk/subversion/libsvn_wc/wc_db.c
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=980688&r1=980687&r2=980688&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Fri Jul 30 09:00:03 2010
@@ -2676,6 +2676,32 @@ svn_wc__db_pristine_get_sha1(const svn_c
}
+/* Delete the pristine text referenced by SHA1_CHECKSUM in the database
+ * referenced by PDH. */
+static svn_error_t *
+pristine_remove(svn_wc__db_pdh_t *pdh,
+ const svn_checksum_t *sha1_checksum,
+ apr_pool_t *scratch_pool)
+{
+ svn_sqlite__stmt_t *stmt;
+ const char *pristine_abspath;
+
+ /* Remove the DB row. */
+ SVN_ERR(svn_sqlite__get_statement(&stmt, pdh->wcroot->sdb,
+ STMT_DELETE_PRISTINE));
+ SVN_ERR(svn_sqlite__bind_checksum(stmt, 1, sha1_checksum, scratch_pool));
+ SVN_ERR(svn_sqlite__update(NULL, stmt));
+
+ /* Remove the file */
+ SVN_ERR(get_pristine_fname(&pristine_abspath, pdh->wcroot->abspath,
+ sha1_checksum, TRUE /* create_subdir */,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_remove_file2(pristine_abspath, TRUE /* ignore_enoent */,
+ scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
svn_error_t *
svn_wc__db_pristine_remove(svn_wc__db_t *db,
const char *wri_abspath,
@@ -2720,24 +2746,10 @@ svn_wc__db_pristine_remove(svn_wc__db_t
SVN_ERR(svn_sqlite__reset(stmt));
}
- /* If not referenced, remove first the PRISTINE table row, then the file. */
+ /* If not referenced, remove the PRISTINE table row and the file. */
if (! is_referenced)
{
- svn_sqlite__stmt_t *stmt;
- const char *pristine_abspath;
-
- /* Remove the DB row. */
- SVN_ERR(svn_sqlite__get_statement(&stmt, pdh->wcroot->sdb,
- STMT_DELETE_PRISTINE));
- SVN_ERR(svn_sqlite__bind_checksum(stmt, 1, sha1_checksum, scratch_pool));
- SVN_ERR(svn_sqlite__update(NULL, stmt));
-
- /* Remove the file */
- SVN_ERR(get_pristine_fname(&pristine_abspath, pdh->wcroot->abspath,
- sha1_checksum,
- TRUE /* create_subdir */,
- scratch_pool, scratch_pool));
- SVN_ERR(svn_io_remove_file2(pristine_abspath, TRUE, scratch_pool));
+ SVN_ERR(pristine_remove(pdh, sha1_checksum, scratch_pool));
}
return SVN_NO_ERROR;