Author: hwright
Date: Fri Dec 18 20:11:51 2009
New Revision: 892364
URL: http://svn.apache.org/viewvc?rev=892364&view=rev
Log:
Save both the md5 and sha1 checksums to the pristine table. For the time
being, we don't know the sha1 a priori, so we'll need the md5 for fetching
the pristine.
* subversion/libsvn_wc/update_editor.c
(close_file): Update parameters for db_pristine_install().
* subversion/libsvn_wc/wc_db.c
(svn_wc__db_pristine_install): Write both the sha1 and md5 to the db.
* subversion/libsvn_wc/wc_db.h
(svn_wc__db_pristine_install): Update parameters and docs.
Modified:
subversion/trunk/subversion/libsvn_wc/update_editor.c
subversion/trunk/subversion/libsvn_wc/wc_db.c
subversion/trunk/subversion/libsvn_wc/wc_db.h
Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=892364&r1=892363&r2=892364&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/update_editor.c Fri Dec 18 20:11:51
2009
@@ -4926,7 +4926,8 @@
/* If we had a text change, drop the pristine into it's proper place. */
if (fb->temp_pristine_abspath)
SVN_ERR(svn_wc__db_pristine_install(eb->db, fb->temp_pristine_abspath,
- sha1_actual_checksum, pool));
+ sha1_actual_checksum,
+ md5_actual_checksum, pool));
#endif
/* It's a small world, after all. */
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=892364&r1=892363&r2=892364&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Fri Dec 18 20:11:51 2009
@@ -2334,7 +2334,8 @@
svn_error_t *
svn_wc__db_pristine_install(svn_wc__db_t *db,
const char *tempfile_abspath,
- const svn_checksum_t *checksum,
+ const svn_checksum_t *sha1_checksum,
+ const svn_checksum_t *md5_checksum,
apr_pool_t *scratch_pool)
{
svn_wc__db_pdh_t *pdh;
@@ -2345,7 +2346,8 @@
svn_sqlite__stmt_t *stmt;
SVN_ERR_ASSERT(svn_dirent_is_absolute(tempfile_abspath));
- SVN_ERR_ASSERT(checksum != NULL);
+ SVN_ERR_ASSERT(sha1_checksum != NULL);
+ SVN_ERR_ASSERT(md5_checksum != NULL);
VERIFY_CHECKSUM_KIND(checksum);
@@ -2362,7 +2364,7 @@
scratch_pool, scratch_pool));
VERIFY_USABLE_PDH(pdh);
- SVN_ERR(get_pristine_fname(&pristine_abspath, pdh, checksum,
+ SVN_ERR(get_pristine_fname(&pristine_abspath, pdh, sha1_checksum,
TRUE /* create_subdir */,
scratch_pool, scratch_pool));
@@ -2375,10 +2377,8 @@
SVN_ERR(svn_sqlite__get_statement(&stmt, pdh->wcroot->sdb,
STMT_INSERT_PRISTINE));
- if (checksum->kind == svn_checksum_sha1)
- SVN_ERR(svn_sqlite__bind_checksum(stmt, 1, checksum, scratch_pool));
- else
- SVN_ERR(svn_sqlite__bind_checksum(stmt, 2, checksum, scratch_pool));
+ SVN_ERR(svn_sqlite__bind_checksum(stmt, 1, sha1_checksum, scratch_pool));
+ SVN_ERR(svn_sqlite__bind_checksum(stmt, 2, md5_checksum, scratch_pool));
SVN_ERR(svn_sqlite__bind_int64(stmt, 3, finfo.size));
SVN_ERR(svn_sqlite__insert(NULL, stmt));
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.h?rev=892364&r1=892363&r2=892364&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.h Fri Dec 18 20:11:51 2009
@@ -827,11 +827,14 @@
### install the sucker into the pristine datastore for the given checksum.
### This is used for files where we don't know the checksum ahead of
### time, so we drop it into a temp area first, computing the checksum
- ### as we write it there. */
+ ### as we write it there.
+
+ ### the md5_checksum parameter is temporary. */
svn_error_t *
svn_wc__db_pristine_install(svn_wc__db_t *db,
const char *tempfile_abspath,
- const svn_checksum_t *checksum,
+ const svn_checksum_t *sha1_checksum,
+ const svn_checksum_t *md5_checksum,
apr_pool_t *scratch_pool);