Hmm, I actually have no idea what is going on here (upgrade_tests.py 2 on
win), after all.

The svn:externals definition goes:

[[[
Properties on 'A/D':
  svn:externals
    ^/../repo.other/A exdir_A
    ///tmp/repo.other/A/D/G/ exdir_A/G/              [ <---- ]
    exdir_A/H -r 1 file:///tmp/repo.other/A/D/H
    /tmp/repo.other/A/B x
]]]

and is resolved to:

  DBG: cleanup.c: 236: resolved_url = file:///tmp/repo.other/A/D/G

I don't see a file://tmp/... (with two slashes) anywhere. I don't have
access to a windows built svn, but the '///' triple slash scheme-relative
external url-relpath seems to be resolved wrongly on windows...? But we do
have different tests that verify this relative URL type.

In svn_uri_canonicalize() (i.e. in canonicalize()), I can find some
  #ifdef SVN_USE_DOS_PATHS
which possibly are the cause, assuming that they remove a slash too many.
But I can't think of a reason why, as my patch only seems to call
  canonicalize("file:///tmp/repo...")
and
  canonicalize("tmp/repo.other/A/D/G")

Would someone with a win build be so kind and try to run a backtrace of this
error so we have some line numbers? Otherwise I am considering reverting
that change and discussing the EXTERNALS table first.

~Neels


On 09/27/2011 01:59 AM, Neels J Hofmeyr wrote:
> Ok, I think I know what this is related to. I wasn't aware of breaking the
> build for such a long time, sincerely sorry about that... I'm not sure when
> I can find time to fix it, but I'll try to find time soon.
> 
> Thanks,
> ~Neels
> 
> On 09/26/2011 11:48 PM, Bert Huijben wrote:
>>
>>
>>> -----Original Message-----
>>> From: ne...@apache.org [mailto:ne...@apache.org]
>>> Sent: donderdag 22 september 2011 21:38
>>> To: comm...@subversion.apache.org
>>> Subject: svn commit: r1174342 - in /subversion/trunk/subversion:
>>> include/private/svn_wc_private.h libsvn_client/cleanup.c
>>> libsvn_wc/upgrade.c libsvn_wc/wc_db.c libsvn_wc/wc_db.h
>>>
>>> Author: neels
>>> Date: Thu Sep 22 19:38:09 2011
>>> New Revision: 1174342
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1174342&view=rev
>>> Log:
>>> Issue #4016. Try to find proper URL information on externals during upgrade.
>>> Do this after the entire upgrade ran through, as repository information is
>>> easiest to obtain after all the rest has been upgraded.
>>>
>>> (This might obsolete some parts of the existing externals prop upgrade code.
>>> But removing is for another patch, and might just be micro-optimization.)
>>>
>>> * subversion/libsvn_client/cleanup.c
>>>   (svn_client_upgrade):
>>>     Fetch all URL and revisions information from upgraded externals' working
>>>     copies, or from fetch_repos_info() if not checked out yet. This properly
>>>     populates the EXTERNALS table rows for upgraded externals of all kinds.
>>>     Furthermore, change error handling in the externals upgrade loop so that
>>>     one externals failure does not abort upgrade of other externals.
>>>
>>> * subversion/include/private/svn_wc_private.h,
>>> * subversion/libsvn_wc/upgrade.c
>>>   (svn_wc__upgrade_add_external_info): New function.
>>>
>>> * subversion/libsvn_wc/wc_db.h,
>>> * subversion/libsvn_wc/wc_db.c
>>>   (svn_wc__db_upgrade_insert_external): New function.
>>
>> I'm not sure if this problem is really caused by this commit, but 
>> upgrade_tests.py 2 is currently still failing on Windows:
>>
>> FAIL:  upgrade_tests.py 2: upgrade with externals
>>
>> The interesting lines are:
>> svn: warning: W200000: Error handling externals definition for 
>> 'svn-test-work\working_copies\upgrade_tests-2\A\D\exdir_A\G':
>> svn: warning: W180001: Unable to connect to a repository at URL 
>> 'file://tmp/repo.other/A/D/G'
>>
>> Where 'file://tmp/repo.other/A/D/G' is interpreted as 
>> '\\tmp\repo.other\A\D\G' on Windows and is not canonical on *nix.
>>
>>      Bert 
>>
>>
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to