Author: rhuijben
Date: Wed Feb 18 15:26:24 2015
New Revision: 1660652

URL: http://svn.apache.org/r1660652
Log:
* subversion/libsvn_wc/entries.c
  (insert_node): Don't write last_* values on local additions as that
    trips the validation rules (and makes no sense).

Modified:
    subversion/trunk/subversion/libsvn_wc/entries.c

Modified: subversion/trunk/subversion/libsvn_wc/entries.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.c?rev=1660652&r1=1660651&r2=1660652&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.c (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.c Wed Feb 18 15:26:24 2015
@@ -1459,7 +1459,7 @@ insert_node(svn_sqlite__db_t *sdb,
   SVN_ERR_ASSERT(node->op_depth > 0 || node->repos_relpath);
 
   SVN_ERR(svn_sqlite__get_statement(&stmt, sdb, STMT_INSERT_NODE));
-  SVN_ERR(svn_sqlite__bindf(stmt, "isdsnnnnsnris",
+  SVN_ERR(svn_sqlite__bindf(stmt, "isdsnnnnsn",
                             node->wc_id,
                             node->local_relpath,
                             node->op_depth,
@@ -1467,10 +1467,14 @@ insert_node(svn_sqlite__db_t *sdb,
                             /* Setting depth for files? */
                             (node->kind == svn_node_dir && present)
                               ? svn_depth_to_word(node->depth)
-                              : NULL,
-                            node->changed_rev,
-                            node->changed_date,
-                            node->changed_author));
+                              : NULL));
+
+  if (present && node->repos_relpath)
+    {
+      SVN_ERR(svn_sqlite__bind_revnum(stmt, 10, node->changed_rev));
+      SVN_ERR(svn_sqlite__bind_int64(stmt, 11, node->changed_date));
+      SVN_ERR(svn_sqlite__bind_text(stmt, 12, node->changed_author));
+    }
 
   if (node->repos_relpath
       && node->presence != svn_wc__db_status_base_deleted)
@@ -1504,13 +1508,17 @@ insert_node(svn_sqlite__db_t *sdb,
       SVN_ERR(svn_sqlite__bind_checksum(stmt, 14, node->checksum,
                                         scratch_pool));
 
-      if (node->recorded_size != SVN_INVALID_FILESIZE)
-        SVN_ERR(svn_sqlite__bind_int64(stmt, 16, node->recorded_size));
+      if (node->repos_relpath)
+        {
+          if (node->recorded_size != SVN_INVALID_FILESIZE)
+            SVN_ERR(svn_sqlite__bind_int64(stmt, 16, node->recorded_size));
 
-      SVN_ERR(svn_sqlite__bind_int64(stmt, 17, node->recorded_time));
+          SVN_ERR(svn_sqlite__bind_int64(stmt, 17, node->recorded_time));
+        }
     }
 
-  if (node->properties && present) /* ### Never set, props done later */
+   /* ### Never set, props done later */
+  if (node->properties && present && node->repos_relpath)
     SVN_ERR(svn_sqlite__bind_properties(stmt, 15, node->properties,
                                         scratch_pool));
 


Reply via email to