"Bert Huijben" <bert_at_qqmail.nl> writes:
>> -----Original Message-----
>> From: MARTIN PHILIP [mailto:codematters_at_ntlworld.com] On Behalf Of
>> Philip Martin
>> Sent: donderdag 4 april 2013 14:23
>> To: Bert Huijben
>> Cc: 'Philip Martin'; dev_at_subversion.apache.org
>> Subject: Re: issue 4345: switch/delete/commit confusion
>>
>> 1.6 replaces the switched URL. As far as I can see 1.6 has resonable
>> behaviour from a user's point of view. The file is marked switched the
>> commit affects the switched item. Even update after committing the
>> delete or replace seems to work: for replace the item remains switched,
>> for delete the switched item is removed from the working copy and update
>> restores the unswitched item.
>
> While this might be/sound reasonable, this is not how
> svn_wc__db_scan_addition() and everything build on top works.
>
> Added nodes are in WC-NG always added below their parent; they don't have a
> URL. What is below an added tree is completely ignored for its status
>
> Changing this, changes the entire WC-NG design in many more ways than I can
> think of...
I've always found the scan_deletion/scan_additon API hard to use. I
don't see anything in the NODES data model that would stop us
implementing the 1.6 behaviour. The only (!) problem is the code.
Three switched nodes deleted:
$ svn st
D S f1
D S f2
D S f3
op-depth local-relpath presence repos-path
0 normal trunk
0 f1 normal branch/f1
0 f2 normal branch/f2
0 f3 normal branch/f3
1 f1 base-delete
1 f2 base-delete
1 f3 base-delete
Replace one with an add, one with a copy:
$ svn st
D S f1
R S f2
R + S f3
op-depth local-relpath presence repos-path
0 normal trunk
0 f1 normal branch/f1
0 f2 normal branch/f2
0 f3 normal branch/f3
1 f1 base-delete
1 f2 normal
1 f3 normal C/f4
Commit:
op-depth local-relpath presence repos-path
0 normal trunk
0 f1 not-present branch/f1
0 f2 normal branch/f2
0 f3 normal branch/f3
Update:
op-depth local-relpath presence repos-path
0 normal trunk
0 f1 normal trunk/f1
0 f2 normal branch/f2
0 f3 normal branch/f3
The log for the commit would show:
D /branch/f1
R /branch/f2
R /branch/f3 (copied from /C/f4)
--
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download
Received on 2013-04-04 15:26:19 CEST