> -----Original Message-----
> From: phi...@apache.org [mailto:phi...@apache.org]
> Sent: vrijdag 15 februari 2013 13:09
> To: comm...@subversion.apache.org
> Subject: svn commit: r1446548 -
> /subversion/trunk/subversion/tests/cmdline/update_tests.py
> 
> Author: philip
> Date: Fri Feb 15 12:08:54 2013
> New Revision: 1446548
> 
> URL: http://svn.apache.org/r1446548
> Log:
> This test was updating 'A/E' but that path never exists, I think the
> path should be 'A/B/E' based on the rest of the test.  The test is
> still XFAIL as for some reason the update reports two conflicts on
> 'A', otherwise the test would PASS.
> 
> * subversion/tests/cmdline/update_tests.py
>   (update_moved_away): Change the update target, tweak expectations.
> 
> Modified:
>     subversion/trunk/subversion/tests/cmdline/update_tests.py
> 
> Modified: subversion/trunk/subversion/tests/cmdline/update_tests.py
> URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/
> update_tests.py?rev=1446548&r1=1446547&r2=1446548&view=diff
> ==========================================================
> ====================
> --- subversion/trunk/subversion/tests/cmdline/update_tests.py (original)
> +++ subversion/trunk/subversion/tests/cmdline/update_tests.py Fri Feb 15
> 12:08:54 2013
> @@ -6589,7 +6589,7 @@ def windows_update_backslash(sbox):
> 
>  @XFail()
>  def update_moved_away(sbox):
> -  "switch a moved away directory"
> +  "update subtree of moved away"
> 
>    sbox.build()
>    wc_dir = sbox.wc_dir
> @@ -6599,17 +6599,21 @@ def update_moved_away(sbox):
> 
>    sbox.simple_move('A', 'A_moved')
> 
> +  # Adding prev_status=' ' and prev_treeconflict='C' to A will make
> +  # the test PASS but why are we getting two conflicts?
>    expected_output = svntest.wc.State(wc_dir, {
> +      'A' : Item(status='  ', treeconflict='C'),
>    })

Thanks for tweaking...

Yes, this looks strange. We had one conflict before your work (standard 
shadowed update). Is the other one caused by the revision bump?

> 
>    expected_disk = None
> -  expected_status = expected_output = svntest.wc.State(wc_dir, {
> +  expected_status = svntest.wc.State(wc_dir, {
>      ''                  : Item(status='  ', wc_rev='1'),
> -    'A'                 : Item(status='D ', wc_rev='1', moved_to='A_moved'),
> +    'A'                 : Item(status='D ', wc_rev='1', moved_to='A_moved',
> +                               treeconflict='C'),
>      'A/B'               : Item(status='D ', wc_rev='1'),
> -    'A/B/E'             : Item(status='D ', wc_rev='1'),
> -    'A/B/E/beta'        : Item(status='D ', wc_rev='1'),
> -    'A/B/E/alpha'       : Item(status='D ', wc_rev='1'),
> +    'A/B/E'             : Item(status='D ', wc_rev='2'),
> +    'A/B/E/beta'        : Item(status='D ', wc_rev='2'),
> +    'A/B/E/alpha'       : Item(status='D ', wc_rev='2'),
>      'A/B/F'             : Item(status='D ', wc_rev='1'),
>      'A/B/lambda'        : Item(status='D ', wc_rev='1'),
>      'A/D'               : Item(status='D ', wc_rev='1'),
> @@ -6624,7 +6628,8 @@ def update_moved_away(sbox):
>      'A/D/gamma'         : Item(status='D ', wc_rev='1'),
>      'A/C'               : Item(status='D ', wc_rev='1'),
>      'A/mu'              : Item(status='D ', wc_rev='1'),
> -    'A_moved'           : Item(status='A ', copied='+', moved_from='A'),
> +    'A_moved'           : Item(status='A ', copied='+', wc_rev='-',
> +                               moved_from='A'),
>      'A_moved/D'         : Item(status='  ', copied='+', wc_rev='-'),
>      'A_moved/D/G'       : Item(status='  ', copied='+', wc_rev='-'),
>      'A_moved/D/G/rho'   : Item(status='  ', copied='+', wc_rev='-'),
> @@ -6636,7 +6641,7 @@ def update_moved_away(sbox):
>      'A_moved/D/H/chi'   : Item(status='  ', copied='+', wc_rev='-'),
>      'A_moved/D/gamma'   : Item(status='  ', copied='+', wc_rev='-'),
>      'A_moved/B'         : Item(status='  ', copied='+', wc_rev='-'),
> -    'A_moved/B/E'       : Item(status='A ', copied='+', wc_rev='-'),
> +    'A_moved/B/E'       : Item(status='  ', copied='+', wc_rev='-'),

I added this one, to make sure we don't just accidentally upgrade the original 
revision of the descendants only, without adding an additional op-root.

I think this part should be covered in an additional test that tries to resolve 
the tree conflict.

>      'A_moved/B/E/beta'  : Item(status='  ', copied='+', wc_rev='-'),
>      'A_moved/B/E/alpha' : Item(status='  ', copied='+', wc_rev='-'),
>      'A_moved/B/lambda'  : Item(status='  ', copied='+', wc_rev='-'),
> @@ -6647,11 +6652,9 @@ def update_moved_away(sbox):
>      'new'               : Item(status='  ', wc_rev='2'),
>    })
> 
> -  # This update currently breaks the moved status away from the
> -  # original location.
> -
> -  # Either this update should fail (error/skip), or the moved from
> -  # information should stay in sync. (A/E should be its own op-depth)
> +  # This update raises a tree-conflict on A.  The conflict cannot be
> +  # resolved to update the move destination because the move source is
> +  # mixed rev.

Is it easy to test that resolving fails?

Run 'svn resolve --accept something' and verify the error?

(Away from my pc... spending time with my sons)

        Bert

Reply via email to