You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Philip Martin <ph...@codematters.co.uk> on 2002/08/08 12:28:51 UTC

Re: svn commit: rev 2910 - trunk/subversion/libsvn_client trunk/subversion/tests/clients/cmdline trunk/subversion/tests/clients/cmdline/svntest

brane@tigris.org writes:

> Author: brane
> Date: 2002-08-08 01:11:21 -0500 (Thu, 08 Aug 2002)
> New Revision: 2910
> 
> Modified:
>    trunk/subversion/libsvn_client/diff.c
>    trunk/subversion/tests/clients/cmdline/merge_tests.py
>    trunk/subversion/tests/clients/cmdline/svntest/tree.py
> Log:
> This is a partial fix for issue #838.
> Originally by Philip Martin <ph...@codematters.co.uk>

Thanks for handling this.


[Context: part of a test following a repos to wc copy during a merge]

> +  expected_status = wc.State(C_path, {
> +    ''       : Item(status='_ ', wc_rev=1, repos_rev=2),
> +    'Q'      : Item(status='A ', wc_rev='-', copied='+', repos_rev=2),
> +    # FIXME: This doesn't seem right. How can Q/bar be copied and not added?
> +    #        Can't close issue #838 until this is resolved.
> +    'Q/bar'  : Item(status='_ ', wc_rev='-', copied='+', repos_rev=2),
> +    'foo'    : Item(status='A ', wc_rev='-', copied='+', repos_rev=2),
> +    })

This is not merge specific, that's how copy works. For an ordinary
copy such as

$ svn cp http://localhost:8888/repositories/current-repo/A/B/E \
         working_copies/merge_tests-1/A/C

the status is

$ svn st -uv working_copies/merge_tests-1/A/C
_               1        1   anonymou   working_copies/merge_tests-1/A/C/
A  +            -        1   anonymou   working_copies/merge_tests-1/A/C/E
_  +            -        1   anonymou   working_copies/merge_tests-1/A/C/E/alpha
_  +            -        1   anonymou   working_copies/merge_tests-1/A/C/E/beta

Copied children of a copied directory have status '_'.  I think it's
because they don't need to be sent during a commit.  If you modify one
of the children it becomes status 'M' and then does need to be sent.
If you were to copy something into a copied directory it would have
status 'A' and would need to be sent, so

$ svn cp http://localhost:8888/repositories/current-repo/A/B/E/alpha \
         working_copies/merge_tests-1/A/C/E/alpha2 

$ svn st -uv working_copies/merge_tests-1/A/C/
_              1        1   anonymou   working_copies/merge_tests-1/A/C/
A  +           -        1   anonymou   working_copies/merge_tests-1/A/C/E
_  +           -        1   anonymou   working_copies/merge_tests-1/A/C/E/alpha
A  +           -       ?          ?    working_copies/merge_tests-1/A/C/E/alpha2
_  +           -        1   anonymou   working_copies/merge_tests-1/A/C/E/beta


-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org