Author: philip
Date: Thu Nov 18 19:07:43 2010
New Revision: 1036575

URL: http://svn.apache.org/viewvc?rev=1036575&view=rev
Log:
Stop eliding copyfrom information for SVN_WC__OP_DEPTH.  Set op_depth
to a more sensible value in svn_wc__db_op_copy_dir.  This gets the
regression test FAILs down to 3, although merge still gets op_depth
wrong in added trees.

* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_temp_elide_copyfrom): Make conditional.

* subversion/libsvn_wc/wc_db.c
  (elide_copyfrom, get_copyfrom): Make conditional.
  (db_op_copy): Make eliding conditional.
  (svn_wc__db_op_copy_dir): Make op_depth setting conditional.

* subversion/libsvn_wc/workqueue.c
  (run_file_install): Make eliding conditional.

Modified:
    subversion/trunk/subversion/libsvn_wc/wc_db.c
    subversion/trunk/subversion/libsvn_wc/wc_db.h
    subversion/trunk/subversion/libsvn_wc/workqueue.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=1036575&r1=1036574&r2=1036575&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Thu Nov 18 19:07:43 2010
@@ -279,10 +279,12 @@ read_info(svn_wc__db_status_t *status,
           apr_pool_t *result_pool,
           apr_pool_t *scratch_pool);
 
+#ifndef SVN_WC__OP_DEPTH
 static svn_error_t *
 elide_copyfrom(svn_wc__db_pdh_t *pdh,
                const char *local_relpath,
                apr_pool_t *scratch_pool);
+#endif
 
 static svn_error_t *
 scan_addition(svn_wc__db_status_t *status,
@@ -3087,8 +3089,10 @@ db_op_copy(svn_wc__db_pdh_t *src_pdh,
                             scratch_pool));
     }
 
+#ifndef SVN_WC__OP_DEPTH
   /* ### Should do this earlier and insert the node with the right values. */
   SVN_ERR(elide_copyfrom(dst_pdh, dst_relpath, scratch_pool));
+#endif
 
   SVN_ERR(add_work_items(dst_pdh->wcroot->sdb, work_items, scratch_pool));
 
@@ -3447,7 +3451,11 @@ svn_wc__db_op_copy_dir(svn_wc__db_t *db,
       iwb.original_revnum = original_revision;
     }
 
+#ifdef SVN_WC__OP_DEPTH
+  iwb.op_depth = relpath_depth(local_relpath);
+#else
   iwb.op_depth = 2;  /* ### temporary op_depth */
+#endif
 
   iwb.children = children;
   iwb.depth = depth;
@@ -8960,6 +8968,7 @@ svn_wc__db_temp_op_make_copy(svn_wc__db_
   return SVN_NO_ERROR;
 }
 
+#ifndef SVN_WC__OP_DEPTH
 /* Return the copyfrom info for LOCAL_ABSPATH resolving inheritance. */
 static svn_error_t *
 get_copyfrom(apr_int64_t *copyfrom_repos_id,
@@ -9012,8 +9021,10 @@ get_copyfrom(apr_int64_t *copyfrom_repos
 
   return SVN_NO_ERROR;
 }
+#endif
 
 
+#ifndef SVN_WC__OP_DEPTH
 static svn_error_t *
 elide_copyfrom(svn_wc__db_pdh_t *pdh,
                const char *local_relpath,
@@ -9117,6 +9128,7 @@ svn_wc__db_temp_elide_copyfrom(svn_wc__d
 
   return SVN_NO_ERROR;
 }
+#endif
 
 
 svn_error_t *

Modified: subversion/trunk/subversion/libsvn_wc/wc_db.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.h?rev=1036575&r1=1036574&r2=1036575&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.h Thu Nov 18 19:07:43 2010
@@ -2388,12 +2388,14 @@ svn_wc__db_temp_op_make_copy(svn_wc__db_
                              apr_pool_t *scratch_pool);
 
 
+#ifndef SVN_WC__OP_DEPTH
 /* Elide the copyfrom information for LOCAL_ABSPATH if it can be derived
    from the parent node.  */
 svn_error_t *
 svn_wc__db_temp_elide_copyfrom(svn_wc__db_t *db,
                                const char *local_abspath,
                                apr_pool_t *scratch_pool);
+#endif
 
 
 /* Return the serialized file external info (from BASE) for LOCAL_ABSPATH.

Modified: subversion/trunk/subversion/libsvn_wc/workqueue.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/workqueue.c?rev=1036575&r1=1036574&r2=1036575&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/trunk/subversion/libsvn_wc/workqueue.c Thu Nov 18 19:07:43 2010
@@ -1516,12 +1516,14 @@ run_file_install(svn_wc__db_t *db,
                                       FALSE /* ignore_enoent */,
                                       scratch_pool));
 
+#ifndef SVN_WC__OP_DEPTH
       /* ### there used to be a call to entry_modify() above, to set the
          ### TRANSLATED_SIZE and LAST_MOD_TIME values. that function elided
          ### copyfrom information that snuck into the database. it should
          ### not be there in the first place, but we can manually get rid
          ### of the erroneous, inheritable copyfrom data.  */
       SVN_ERR(svn_wc__db_temp_elide_copyfrom(db, local_abspath, scratch_pool));
+#endif
     }
 
   return SVN_NO_ERROR;


Reply via email to