"Bert Huijben" <b...@qqmail.nl> writes:

>> One other thing that worries me is that mark_tree_deleted seems to
>> doing deletes without doing the loggy/workqueue stuff.  If I delete a
>> replaced file svn_wc_delete4 sets up a workqueue item to handle the
>> text-bases.  However if I delete a directory containing a replaced
>> file it handles the file with a simple call to entry_modify2--that
>> can't be right.  It's not a new bug, it pre-dates wc-ng, but it means
>> that the entry_modify2 calls in mark_tree_deleted cannot simply be
>> replaced by svn_wc__db_temp_op_delete, we need to setup wq items in
>> some cases.
>
> In WC-1.0 we left old administrative data in a lot of code paths... (not
> just a few :( ) and in most cases we fix this on adding. 
> (Talk about broken behavior...)

In this case it's a real bug that breaks the working copy.

          svn rm wc/A/B/f
          svn cp wc/g wc/A/B/f
          svn rm --force wc/A       # doesn't update text-base
          svn revert -R wc/A
          echo 123 >> wc/A/B/f
          svn ci wc                 # fails with checksum error

> In the final version of WC-NG we don't need most of these operations any
> more.
> * Properties: In DB only. Handled directly. No loggy operation necessary
> * Pristines: Not associated with a single file. No need to remove it in the
> general case. (Maybe schedule a cleanup check as wq item?)
>
> Where the old code 'happens to work' in the intermediate state I wouldn't
> try to solve it cleanly for the period until we have the pristines working.
> (All that work will have to go to /dev/null before 1.7)

Yes, a lot of it gets easier when properties are in the db and
pristines are just a checksum.  But mark_tree_deleted will still need
to update the properties and the checksum, and at present it doesn't
do it.

-- 
Philip

Reply via email to