Greg Stein wrote: > On Tue, Mar 9, 2010 at 17:37, <cmpil...@apache.org> wrote: >> ... >> +++ subversion/trunk/subversion/libsvn_wc/adm_ops.c Tue Mar 9 22:37:06 2010 >> @@ -1268,22 +1268,49 @@ svn_wc_get_ancestry2(const char **url, >> result_pool, scratch_pool)); >> } >> >> -/* Recursively mark a tree DIR_ABSPATH with a COPIED flag, skip items >> - scheduled for deletion. */ >> +/* Helper for mark_tree_copied(), handling the property juggling and >> + state changes for a single item LOCAL_ABSPATH (of kind LOCAL_KIND). */ >> +static svn_error_t * >> +mark_item_copied(svn_wc__db_t *db, >> + const char *local_abspath, >> + svn_wc__db_kind_t local_kind, >> + apr_pool_t *pool) > > This new function/param should be named scratch_pool. All new funcs in > libsvn_wc should use the result_pool and scratch_pool naming/paradigm. > Pushing that out to other libraries is also a Good Thing, but > definitely for wc.
Okey dokey. >> +{ >> + apr_hash_t *props; >> + svn_wc_entry_t tmp_entry; >> + svn_node_kind_t kind = >> + local_kind == svn_wc__db_kind_dir ? svn_node_dir : svn_node_unknown; >> + >> + /* Squirrel away the pristine properties to install them on >> + working, because we might delete the base table */ >> + SVN_ERR(svn_wc__db_read_pristine_props(&props, db, local_abspath, >> + pool, pool)); >> + tmp_entry.copied = TRUE; >> + SVN_ERR(svn_wc__entry_modify2(db, local_abspath, kind, FALSE, &tmp_entry, >> + SVN_WC__ENTRY_MODIFY_COPIED, pool)); > > The old code also did this for parent_stub=TRUE. You've now lost that... [...] >> - iterpool, iterpool)); >> - tmp_entry.copied = TRUE; >> - SVN_ERR(svn_wc__entry_modify2(db, child_abspath, svn_node_unknown, >> - TRUE, &tmp_entry, >> - SVN_WC__ENTRY_MODIFY_COPIED, >> - iterpool)); > > This is the part which got lost. > >> ... > > I'm assuming you got no test errors, so I'm wondering what is going > on. It is really hard to trace the ->copied flag thru the entries > writing code. I definitely realized that I was making this change. I got no test errors, and I tried to figure out why. I was thinking that the parent stub was a bare-minimal bit of information that perhaps didn't even carry the copied flag (and related copyfrom-* bits). Certainly in wc-1 that's the way it was -- little more than a subdir name and node-kind flag. -- C. Michael Pilato <cmpil...@collab.net> CollabNet <> www.collab.net <> Distributed Development On Demand
signature.asc
Description: OpenPGP digital signature