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 Fri Jan 12 00:28:03 2007