You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Martin Hauner <Ma...@gmx.net> on 2006/06/09 10:11:09 UTC

PATCH Re: merge problem, svn: Directory 'xxx' is missing [Issue 2515]

Hi,

Garret Rooney wrote:
> On 6/8/06, Martin Hauner <Ma...@gmx.net> wrote:
> 
> > The error is created in svn_wc_adm_retrieve. The interesting code seems 
> to be
> > the add_directory in libsvn_client/repos_diff.c.
> >
> > If anyone could outline a fix, I could try to create a patch.
> 
> Perhaps making sure get_path_access is passed TRUE for it's leneint
> parameter, and then gracefully handling the case where you can't get
> that access baton would be enough?  I imagine you'd want to end up
> with action = skipped in those kind of cases, although I'm not
> positive.

Alway passing TRUE seems to work. At least the diff and merge tests
still run.

> A good first step would be writing a test case for the test suite though.

Ok here is my try to create a test. Creating the test case works but I'm
not sure what parameters I have to pass to the final merge call.
What are the different Item parameter types? Do i have to use status or
verb. Hmm...

Another issue is that the test doesn't work, it produces some output but i 
have no idea what it is trying to tell me:

=============================================================
Expected __SVN_ROOT_NODE and actual __SVN_ROOT_NODE are different!
=============================================================
EXPECTED NODE TO BE:
=============================================================
 * Node name:   __SVN_ROOT_NODE
    Path:       __SVN_ROOT_NODE
    Contents:   None
    Properties: {}
    Attributes: {}
    Children:   1
=============================================================
ACTUAL NODE FOUND:
=============================================================
 * Node name:   __SVN_ROOT_NODE
    Path:       __SVN_ROOT_NODE
    Contents:   None
    Properties: {}
    Attributes: {}
    Children: is a file.
Unequal Types: one Node is a file, the other is a directory
EXCEPTION: SVNTreeUnequal
FAIL:  merge_tests.py 32: merge an added dir on a deleted dir in target


-- 
Martin

Subcommander, http://subcommander.tigris.org
a cross platform Win32/Unix/MacOSX subversion gui client & diff/merge tool.

Echte DSL-Flatrate dauerhaft für 0,- Euro*!
"Feel free" mit GMX DSL! http://www.gmx.net/de/go/dsl

Re: PATCH Re: merge problem, svn: Directory 'xxx' is missing [Issue 2515]

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
On 6/9/06, Martin Hauner <Ma...@gmx.net> wrote:

> Alway passing TRUE seems to work. At least the diff and merge tests
> still run.

That's a good sign.  I don't know enough about libsvn_wc to say for
sure if that's the right solution, but once the test works you can
post it here with the patch for people to review.

> > A good first step would be writing a test case for the test suite though.
>
> Ok here is my try to create a test. Creating the test case works but I'm
> not sure what parameters I have to pass to the final merge call.
> What are the different Item parameter types? Do i have to use status or
> verb. Hmm...
>
> Another issue is that the test doesn't work, it produces some output but i
> have no idea what it is trying to tell me:
>
> =============================================================
> Expected __SVN_ROOT_NODE and actual __SVN_ROOT_NODE are different!
> =============================================================
> EXPECTED NODE TO BE:
> =============================================================
>  * Node name:   __SVN_ROOT_NODE
>     Path:       __SVN_ROOT_NODE
>     Contents:   None
>     Properties: {}
>     Attributes: {}
>     Children:   1
> =============================================================
> ACTUAL NODE FOUND:
> =============================================================
>  * Node name:   __SVN_ROOT_NODE
>     Path:       __SVN_ROOT_NODE
>     Contents:   None
>     Properties: {}
>     Attributes: {}
>     Children: is a file.
> Unequal Types: one Node is a file, the other is a directory
> EXCEPTION: SVNTreeUnequal
> FAIL:  merge_tests.py 32: merge an added dir on a deleted dir in target

The main problem was that you were constructing your expected disk
structure with the wrong path.  you started with svn-test-work/...,
when you really should have started with '' and then given paths
relative to I_path.  I agree, it's not exactly obvious what the
problem was, our test suite is nowhere near as straitforward as it
should be...

Here's an updated patch.  I also removed the expected status bit, but
I'm not sure if that's right or not.  I have only so much time to
fight with the test suite this morning, after all ;-)

-garrett