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: neels_at_apache.org [mailto:neels_at_apache.org]
>>> Sent: donderdag 22 september 2011 21:38
>>> To: commits_at_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
>>
>>
>
Received on 2011-09-29 00:10:32 CEST