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

Re: Can't checkout svn:externals URL using Peg revision

From: Tim Hill <drtimhill_at_comcast.net>
Date: 2007-01-13 00:09:40 CET

I think this is a bug -- I would open an issue against this, since it
really does need fixing -- its clearly missing functionality.

--Tim

On Jan 12, 2007, at 6:44 AM, Stephen wrote:

> Tim, thanks - yes, I was thinking I needed the Peg to prevent
> against renames.
>
> But you don't think pegs are supported for externals? That's
> surprising. I did try specifying both the peg and operative
> revision in my property value ("-r20 svn://server/repos/Common_at_20")
> and SVN is still saying it doesn't exist.
>
> Thanks,
> Stephen
>
> Tim Hill wrote:
>> Actually, I think he needs *both* -r and peg-rev, and I can see a
>> valid reason why you need peg-revs in externals (and, btw, so far as
>> I can see these are not currently supported).
>>
>> While you are correct that he needs a -r20 switch in the external to
>> make sure he always gets the same rev of the file, he also needs a
>> peg-rev. Otherwise, a rename operation could break the external. For
>> example, renaming "Common" to "Common2" would break the external,
>> since "Common" no longer exists in HEAD.
>>
>> --Tim
>>
>>
>> On Jan 11, 2007, at 1:00 PM, Ryan Schmidt wrote:
>>
>>
>>> On Jan 11, 2007, at 14:39, Stephen wrote:
>>>
>>>
>>>> I've searched the list archives as best I can and I'm pretty sure
>>>> I understand the differences between and how to use Peg and
>>>> Operative revisions.
>>>>
>>>> I have a repository at svn://server/repos. That repository has
>>>> projects at svn://server/repos/TaggedProject and svn://server/
>>>> repos/Common (simplified example). I set svn:externals on
>>>> TaggedProject pointing to "-r20 svn://server/repos/Common". Later
>>>> I realized that it's probably better to use a Peg revision to
>>>> protect against upcoming changes to Common. So I changed the
>>>> svn:externals to point to "svn://server/repos/Common_at_20". Now both
>>>> checkout and update on TaggedProject throw an error on the
>>>> external, "URL svn://server/repos/Common_at_20 doesn't exist".
>>>>
>>>> I've tried via Tortoise and the command line. I've also tried svn
>>>> list and svn cat on the Peg URL, and both work as expected (they
>>>> can find the resource).
>>>>
>>>> I have a feeling I'm not understanding something about SVN... can
>>>> anyone enlighten me?
>>>>
>>> I.... think you were better off with -r20 rather than @20.
>>>
>>> I don't think externals support peg revision notation, nor do I see
>>> a reason why they should.
>>>
>>> "svn://server/repos/Common_at_20" means "find the object that was
>>> called svn://server/repos/Common in revision 20 of the repository,
>>> and get its contents from -rHEAD". This is not what you want if
>>> you're trying to protect against upcoming changes to Common.
>>>
>>> "-r20 svn://server/repos/Common" means "find the object called
>>> svn://server/repos/Common in the HEAD revision of the repository,
>>> and get its contents from -r20". This is what you want.
>>>
>>>
>>> --
>>>
>>> To reply to the mailing list, please use your mailer's Reply To All
>>> function
>>>
>>>
>>> --------------------------------------------------------------------
>>> -
>>> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>>> For additional commands, e-mail: users-help@subversion.tigris.org
>>>
>>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org For
> additional commands, e-mail: users-help@subversion.tigris.org
Received on Sat Jan 13 00:10:40 2007

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