> -----Original Message-----
> From: Philip Martin [mailto:philip.mar...@wandisco.com]
> Sent: donderdag 8 november 2012 13:31
> To: Bert Huijben
> Cc: 'Daniel Shahaf'; dev@subversion.apache.org
> Subject: Re: svn commit: r1406870 - in /subversion/trunk/subversion:
> libsvn_wc/update_editor.c libsvn_wc/wc_db_wcroot.c
> tests/cmdline/special_tests.py
> 
> "Bert Huijben" <b...@qqmail.nl> writes:
> 
> > In the update editor we could change the behavior of incoming symlink
> > changes to be handled as a delete + add, introducing a tree conflict
> > (and a local replacement of the incoming node to keep the original
> > state) if there are local changes.
> >
> > I think I should be able to introduce this update editor behavior
> > easily, but it is hard for me to test the on-disk symlink behavior. So
> > I might break a few buildbot runs while working on this.
> 
> We are currently adding a tree conflcit but we are not doing a good job:
> 
> $ svn up wc --accept postpone
> Updating 'wc':
>    C wc/f
> At revision 2.
> Summary of conflicts:
>   Tree conflicts: 1
> $ svn st wc
> D     C wc/f
>       >   local add, incoming add upon update
> Summary of conflicts:
>   Tree conflicts: 1
> 
> We have flagged an add-add conflict but it's more of an update-update
> conflict.  Also the working state is 'D' and that is probably never what
> the user wants.  To get to state 'R' the user must resolve the tree
> conflict before doing the extra add.

After r1407131 you would get something like:

<< s-reverse and s-type are the changes from file into symlink and the other
way >>

$ svn up svn-test-work\working_copies\special_tests-25
Updating 'svn-test-work\working_copies\special_tests-25':
U    svn-test-work\working_copies\special_tests-25\s-in-place
   C svn-test-work\working_copies\special_tests-25\s-replace
   A svn-test-work\working_copies\special_tests-25\s-replace
   C svn-test-work\working_copies\special_tests-25\s-reverse
   C svn-test-work\working_copies\special_tests-25\s-type
Updated to revision 5.
Summary of conflicts:
  Tree conflicts: 3

$ svn status -u svn-test-work\working_copies\special_tests-25
RM +  C          -        2 jrandom
svn-test-work\working_copies\special_tests-25\s-replace
      >   local edit, incoming replace upon update
RM +  C          -        2 jrandom
svn-test-work\working_copies\special_tests-25\s-reverse
      >   local edit, incoming replace upon update
RM +  C          -        2 jrandom
svn-test-work\working_copies\special_tests-25\s-type
      >   local edit, incoming replace upon update
M               5        3 jrandom
svn-test-work\working_copies\special_tests-25\s-in-place      

When the files/symlinks were locally modified before the update. (If the
files weren't modified the update just handles the update, as with a normal
replacement)

As part of this work I enabled quite a few special tests on Windows, to at
least get into these code paths from the test suite.

        Bert
> 
> --
> Certified & Supported Apache Subversion Downloads:
> http://www.wandisco.com/subversion/download

Reply via email to