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/08 13:38:06 UTC
merge problem, svn: Directory 'xxx' is missing [Issue 2515]
Hi,
I'm trying to merge a new and very big vendor drop (ace/tao) into our trunk
and I'm receiving an error "working copy 'orbsvc' is missing or not locked"
with svn 1.3.
Since we have deleted parts of ace/tao (like the dir given in the error) on
trunk (we don't need it and it saves a lot of space) this looks like issue 2515.
I have build an svn client from trunk and used the description from issue 2515
to see if it works on trunk. It does not.
I could spend a few hours fixing the problem but actually i have no idea how
to fix it.
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.
> svn.exe!svn_wc_adm_retrieve(svn_wc_adm_access_t * *, svn_wc_adm_access_t *, const char *, apr_pool_t *) C
svn.exe!get_path_access(svn_wc_adm_access_t * *, svn_wc_adm_access_t *, const char *, int, apr_pool_t *) C
svn.exe!add_directory(const char *, void *, const char *, long, apr_pool_t *, void * *) C
svn.exe!add_directory(const char *, void *, const char *, long, apr_pool_t *, void * *) C
svn.exe!start_element(void *, int, const char *, const char *, const char * *) C
svn.exe!start_element(void *, const char *, const char * *) C
svn.exe!doContent(void *, int, const encoding *, const char *, const char *, const char * *) C
svn.exe!contentProcessor(void *, const char *, const char *, const char * *) C
svn.exe!doProlog(void *, const encoding *, const char *, const char *, int, const char *, const char * *) C
svn.exe!prologProcessor(void *, const char *, const char *, const char * *) C
svn.exe!prologInitProcessor(void *, const char *, const char *, const char * *) C
svn.exe!XML_ParseBuffer(void *, int, int) C
svn.exe!XML_Parse(void *, const char *, int, int) C
svn.exe!ne_xml_parse(ne_xml_parser_s *, const char *, unsigned int) C
svn.exe!parse_spool_file(const char *, ne_xml_parser_s *, apr_pool_t *) C
svn.exe!parsed_request(ne_session_s *, const char *, const char *, const char *, apr_file_t *, void (ne_xml_parser_s *, void *)*, const svn_ra_dav__xml_elm_t *, int, int (void *, int, int)*, int (void *, const svn_ra_dav__xml_elm_t *, const char * *)*, int (void *, const svn_ra_dav__xml_elm_t *, const char *)*, int (void *, int, const char *, const char *, const char * *)*, int (void *, int, const char *, unsigned int)*, int (void *, int, const char *, const char *)*, void *, apr_hash_t *, int *, int, apr_pool_t *) C
svn.exe!svn_ra_dav__parsed_request(ne_session_s *, const char *, const char *, const char *, apr_file_t *, void (ne_xml_parser_s *, void *)*, int (void *, int, const char *, const char *, const char * *)*, int (void *, int, const char *, unsigned int)*, int (void *, int, const char *, const char *)*, void *, apr_hash_t *, int *, int, apr_pool_t *) C
svn.exe!reporter_finish_report(void *, apr_pool_t *) C
svn.exe!do_merge(const char *, const char *, const svn_opt_revision_t *, const char *, const char *, const svn_opt_revision_t *, const svn_opt_revision_t *, const char *, svn_wc_adm_access_t *, int, int, int, const svn_wc_diff_callbacks2_t *, void *, svn_client_ctx_t *, apr_pool_t *) C
svn.exe!svn_client_merge_peg2(const char *, const svn_opt_revision_t *, const svn_opt_revision_t *, const svn_opt_revision_t *, const char *, int, int, int, int, const apr_array_header_t *, svn_client_ctx_t *, apr_pool_t *) C
svn.exe!svn_cl__merge(apr_getopt_t *, void *, apr_pool_t *) C
svn.exe!main(int, const char * *) C
svn.exe!__tmainCRTStartup() C
svn.exe!mainCRTStartup() C
--
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
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
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
PATCH Re: merge problem, svn: Directory 'xxx' is missing [Issue 2515]
Posted by Martin Hauner <Ma...@gmx.net>.
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: merge problem, svn: Directory 'xxx' is missing [Issue 2515]
Posted by Garrett Rooney <ro...@electricjellyfish.net>.
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.
A good first step would be writing a test case for the test suite though.
-garrett
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org