[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: 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

From: Neels J Hofmeyr <neels_at_elego.de>
Date: Thu, 29 Sep 2011 00:09:50 +0200

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

This is an archived mail posted to the Subversion Dev mailing list.