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);
 
 


Reply via email to