"Bert Huijben" <b...@qqmail.nl> writes: >> -----Original Message----- >> From: MARTIN PHILIP [mailto:codematt...@ntlworld.com] On Behalf Of >> Philip Martin >> Sent: donderdag 4 april 2013 14:23 >> To: Bert Huijben >> Cc: 'Philip Martin'; dev@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