> -----Original Message-----
> From: rhuij...@apache.org [mailto:rhuij...@apache.org]
> Sent: donderdag 17 januari 2013 22:03
> To: comm...@subversion.apache.org
> Subject: svn commit: r1434913 -
> /subversion/trunk/subversion/libsvn_wc/wc_db.c
> 
> Author: rhuijben
> Date: Thu Jan 17 21:03:26 2013
> New Revision: 1434913
> 
> URL: http://svn.apache.org/viewvc?rev=1434913&view=rev
> Log:
> * subversion/libsvn_wc/wc_db.c
>   (read_children_info): Add note about possible bug.
> 
> Modified:
>     subversion/trunk/subversion/libsvn_wc/wc_db.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=1434913&r1=1434912&r2=1434913&view=diff
> ==========================================================
> ====================
> --- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
> +++ subversion/trunk/subversion/libsvn_wc/wc_db.c Thu Jan 17 21:03:26
> 2013
> @@ -8044,12 +8044,16 @@ read_children_info(svn_wc__db_wcroot_t *
>            child_item->info.have_more_work = (child_item->nr_layers > 1);
> 
>            /* Moved-to can only exist at op_depth > 0. */
> +          /* ### Should we really do this for every layer where op_depth > 0
> +                 in undefined order? */
>            moved_to_relpath = svn_sqlite__column_text(stmt, 21, NULL);
>            if (moved_to_relpath)
>              child_item->info.moved_to_abspath =
>                svn_dirent_join(wcroot->abspath, moved_to_relpath, 
> result_pool);
> 
>            /* Moved-here can only exist at op_depth > 0. */
> +          /* ### Should we really do this for every layer where op_depth > 0
> +                 in undefined order? */
>            child_item->info.moved_here = svn_sqlite__column_boolean(stmt,
> 20);
>          }

I think
$ svn mv A B
$ svn mv B A

Will now store moved_from and moved_to in the same record, at the op-depth of A.
(Or copy_tests.py move_file_back_and_forth wouldn't show moved_from and 
moved_to on a single node using status using the code snippet here)

How will this store a future move
$ svn mv A C

The original 1.7 model would have only stored moved_from at op-depth 0, so we 
can find the in-wc location of every node in the repository using a single 
query (if there is one).

--------------
21:07 <@julianf> When you put a replacement file or dir at the moved-from path?
21:07 <@breser> Yup
21:07 <@breser> svn mv A A2; svn status; svn mkdir A; svn status
21:08 <@breser> No more move tracking.
21:08 <@breser> And if you do an update that brings in a change to A it just 
conflicts.
21:09 <@breser> err it does display the resolution option, it just gives you 
the 'working' state err.
21:09 <@julianf> Good catch.
21:10 <@breser> If our wc move design is predicated on not replacing the from 
path we've made a major error.
21:10 <@breser> (I've been playing around with this trying to come up with 
realistic scenarios that people are likely
                to do)
-------------

Did we find a few small issues in the current implementation, or should we 
first go back to the design of the move storage?


        Bert

Reply via email to