"Bert Huijben" <bert_at_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
Received on 2010-02-18 15:07:56 CET