> -----Original Message-----
> From: Philip Martin [mailto:philip.martin_at_wandisco.com]
> Sent: vrijdag 29 januari 2010 15:37
> To: Bert Huijben
> Cc: 'Julian Foad'; 'Neels J Hofmeyr'; 'Greg Stein';
dev_at_subversion.apache.org;
> 'Bert Huijben'
> Subject: Re: '@BASE keyword' vs. 'BASE database-tree' vs 'BASE conceptual-
> tree'
>
> "Bert Huijben" <bert_at_qqmail.nl> writes:
>
> > * svn cp/mv/add/rm
> > These commands look at the current version of the working copy
> > (Based on BASE overlayed with WORKING) and apply changes to
> > WORKING. (And update your working copy and ACTUAL with' relevant
> > changes')
>
> How about the scenario in the other thread. I copy a directory
> containing files: the new items have WORKING nodes but no BASE nodes.
> That's what happens at present and it seems to be correct.
*nod* These operations don't touch base.
> Now I delete one of the copied files; what should happen is that the
> WORKING node gets modified to have WORKING.presence=not-present and
> there is still no BASE node. That's not quite what happens at present
> and it appears to be a bug.
*nod* There should never appear something in BASE for this case.
By blind guessing, I would start looking in the entries write code...
This case is very hard to detect in code using svn_wc_node_t, so that is why
I would start there.
We (Greg, Hyrum and ...) are still working to avoid all rewriting from
entries, as this causes all kinds of data loss for the new storage. (Just
look at the hacks to keep dav properties, and in-db properties stable over
an entry write operation... And don't forget that some data is just lost
(e.g. checksum of replaced base) :( )
> What happens if I add something to replace the deleted file? Does the
> WORKING node somehow record both the original copy and the new add?
> There doesn't seem to be enough information stored: how would it cope
> with the node kind changing for example?
The original copy should be (somehow) implied from the parents WORKING
state. (I can't find this information right now... Will follow up when I
find more information)
The node itself should know that it is an add root itself.
svn_wc__db_scan_addition() probably has more information about how this is
recorded.
Bert
>
> --
> Philip
Received on 2010-01-29 16:31:51 CET