You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Brandon Humphrey <bh...@divxcorp.com> on 2009/09/10 18:01:07 UTC
svn:externals problem
Hi all,
I have an issue where svn:externals is not behaving as expected. There
is an svn:externals entry that is pinned to a revision (r8353). The
Subversion path does exist at the revision being requested, but checkout
fails with the following error.
svn: URL 'https://svn.divxnetworks.com/path/to/folder' doesn't exist
However, I'm able to perform both a 'svn ls' and 'svn checkout' using
the same path and revision. It just isn't working with svn:externals.
Any ideas?
System details are:
Server: version 1.4.3 (r23084)
Client: 1.4.4 and 1.6.5
Thanks,
Brandon
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2393383
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].
RE: svn:externals problem
Posted by Brandon Humphrey <bh...@divxcorp.com>.
Thanks for the quick response. The path in fact does exist at the HEAD
revision, and I've found the problem to be that the parent directory
contains a Last Changed Rev (per svn info) younger than the child
directory.
I've included detailed notes below. Thanks for your help.
Cheers,
Brandon
--------------
C:\tmp>mkdir tmp\parentDir\childDir
C:\tmp>echo foo > tmp\parentDir\childDir\foo
C:\tmp>svn import tmp https://svn/svn/TestRepository -m "testing"
Adding tmp\parentDir
Adding tmp\parentDir\childDir
Adding tmp\parentDir\childDir\foo
Committed revision 49.
C:\tmp>svn copy https://svn/svn/TestRepository/parentDir
https://svn/svn/TestRepository/parentDir_copy -m "testing"
Committed revision 50.
C:\tmp>svn info https://svn/svn/TestRepository/parentDir_copy
Path: parentDir_copy
URL: https://svn/svn/TestRepository/parentDir_copy
Repository Root: https://svn/svn/TestRepository
Repository UUID: 9c33ba83-b1f9-0310-863a-aacaf6d97772
Revision: 50
Node Kind: directory
Last Changed Author: bhumphrey
Last Changed Rev: 50
Last Changed Date: 2009-09-10 15:25:04 -0700 (Thu, 10 Sep 2009)
C:\tmp>svn info https://svn/svn/TestRepository/parentDir_copy/childDir
Path: childDir
URL: https://svn/svn/TestRepository/parentDir_copy/childDir
Repository Root: https://svn/svn/TestRepository
Repository UUID: 9c33ba83-b1f9-0310-863a-aacaf6d97772
Revision: 50
Node Kind: directory
Last Changed Author: bhumphrey
Last Changed Rev: 49
Last Changed Date: 2009-09-10 15:23:58 -0700 (Thu, 10 Sep 2009)
#######################################################
The key point so far is that the child directory has a Last Changed Rev
value of 49 and the parent directory has a younger Last Changed Rev of
50. We have a post build process that pins down svn:externals to a
specific revision prior to creating a tag. Assume another directory has
an svn:externals entry as follows:
someDir https://svn/svn/TestRepository/parentDir_copy/childDir
Our pin tool looks up the Last Changed Rev of the path and drops in a -r
and value, in this case 49. But of course this isn't correct because
its parent directory did not exist until revision 50. Our fix will be
to modify the pin tool to use the value of Revision instead of Last
Changed Rev.
The thing that confused me earlier was that both 'svn ls' and 'svn
checkout' worked using the older revision on the newer path. But
svn:externals failed when it encountered the problem.
I.e. despite the fact that https://svn/svn/TestRepository/parentDir_copy
does not exist at revision 49, these commands still work.
C:\tmp>svn ls -r49
https://svn/svn/TestRepository/parentDir_copy/childDir
foo
C:\tmp>svn co -r49
https://svn/svn/TestRepository/parentDir_copy/childDir
A childDir\foo
Checked out revision 49.
But the following entry in svn:externals produces an error.
some_dir -r49 https://svn/svn/TestRepository/parentDir_copy/childDir
C:\tmp>svn propget svn:externals ProjectD
some_dir -r49 https://svn/svn/TestRepository/parentDir_copy/childDir
C:\tmp>svn up ProjectD
Fetching external item into 'ProjectD\some_dir'
svn: URL 'https://svn/svn/TestRepository/parentDir_copy/childDir'
doesn't exist
However, if I remove the -r49 from the externals entry or change it to
50, the checkout via svn:externals succeeds.
C:\tmp>svn propget svn:externals ProjectD
some_dir https://svn/svn/TestRepository/parentDir_copy/childDir
C:\tmp>svn up ProjectD
Fetching external item into 'ProjectD\build\cmvc\buildTools'
External at revision 26357.
Fetching external item into 'ProjectD\some_dir'
A ProjectD\some_dir\foo
Updated external to revision 50.
>-----Original Message-----
>From: Ryan Schmidt [mailto:subversion-2009b@ryandesign.com]
>Sent: Thursday, September 10, 2009 2:12 PM
>To: Blair Zajac
>Cc: Brandon Humphrey; users@subversion.tigris.org
>Subject: Re: svn:externals problem
>
>
>On Sep 10, 2009, at 15:13, Blair Zajac wrote:
>
>> Brandon Humphrey wrote:
>>>
>>
>>> I have an issue where svn:externals is not behaving as expected.
>>> There
>>> is an svn:externals entry that is pinned to a revision (r8353). The
>>> Subversion path does exist at the revision being requested, but
>>> checkout
>>> fails with the following error.
>>>
>>> svn: URL 'https://svn.divxnetworks.com/path/to/folder' doesn't exist
>>>
>>> However, I'm able to perform both a 'svn ls' and 'svn checkout'
using
>>> the same path and revision. It just isn't working with
>>> svn:externals.
>>
>> Does the external not exist at the HEAD revision at that path?
>
>I assume that's the case as well. Is that right, Brandon?
>
>If so, you need to use peg revisions instead of operative revisions in
>your externals definition -- and to do so, you need to upgrade your
>client to version 1.5.0 or newer.
>
>http://subversion.tigris.org/svn_1.5_releasenotes.html#externals
>
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2393469
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].
Re: svn:externals problem
Posted by Ryan Schmidt <su...@ryandesign.com>.
On Sep 10, 2009, at 15:13, Blair Zajac wrote:
> Brandon Humphrey wrote:
>>
>
>> I have an issue where svn:externals is not behaving as expected.
>> There
>> is an svn:externals entry that is pinned to a revision (r8353). The
>> Subversion path does exist at the revision being requested, but
>> checkout
>> fails with the following error.
>>
>> svn: URL 'https://svn.divxnetworks.com/path/to/folder' doesn't exist
>>
>> However, I'm able to perform both a 'svn ls' and 'svn checkout' using
>> the same path and revision. It just isn't working with
>> svn:externals.
>
> Does the external not exist at the HEAD revision at that path?
I assume that's the case as well. Is that right, Brandon?
If so, you need to use peg revisions instead of operative revisions in
your externals definition -- and to do so, you need to upgrade your
client to version 1.5.0 or newer.
http://subversion.tigris.org/svn_1.5_releasenotes.html#externals
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2393448
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].
Re: svn:externals problem
Posted by Blair Zajac <bl...@orcaware.com>.
Brandon Humphrey wrote:
> Hi all,
>
> I have an issue where svn:externals is not behaving as expected. There
> is an svn:externals entry that is pinned to a revision (r8353). The
> Subversion path does exist at the revision being requested, but checkout
> fails with the following error.
>
> svn: URL 'https://svn.divxnetworks.com/path/to/folder' doesn't exist
>
> However, I'm able to perform both a 'svn ls' and 'svn checkout' using
> the same path and revision. It just isn't working with svn:externals.
Does the external not exist at the HEAD revision at that path?
Regards,
Blair
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2393425
To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].